summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--docs/conf.py14
-rw-r--r--openstack_auth/backend.py3
-rw-r--r--openstack_auth/tests/data_v3.py12
-rw-r--r--openstack_auth/user.py2
-rw-r--r--tox.ini41
6 files changed, 58 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
index 61f2b0a..5a48699 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
docs/_build
build
dist
+.tox
diff --git a/docs/conf.py b/docs/conf.py
index 0e079cb..a9f35d1 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,7 +11,7 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import sys, os
+import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_auth.tests.settings'
@@ -174,14 +174,14 @@ htmlhelp_basename = 'DjangoOpenStackAuthdoc'
# -- Options for LaTeX output --------------------------------------------------
latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
+ # The paper size ('letterpaper' or 'a4paper').
+ #'papersize': 'letterpaper',
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
+ # The font size ('10pt', '11pt' or '12pt').
+ #'pointsize': '10pt',
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
+ # Additional stuff for the LaTeX preamble.
+ #'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
diff --git a/openstack_auth/backend.py b/openstack_auth/backend.py
index d818f5a..18efbaf 100644
--- a/openstack_auth/backend.py
+++ b/openstack_auth/backend.py
@@ -164,7 +164,8 @@ class KeystoneBackend(object):
"""
if user.is_anonymous() or obj is not None:
return set()
- # TODO: Integrate policy-driven RBAC when supported by Keystone.
+ # TODO(gabrielhurley): Integrate policy-driven RBAC
+ # when supported by Keystone.
role_perms = set(["openstack.roles.%s" % role['name'].lower()
for role in user.roles])
service_perms = set(["openstack.services.%s" % service['type'].lower()
diff --git a/openstack_auth/tests/data_v3.py b/openstack_auth/tests/data_v3.py
index 4c3837b..9bab7cd 100644
--- a/openstack_auth/tests/data_v3.py
+++ b/openstack_auth/tests/data_v3.py
@@ -62,8 +62,8 @@ def generate_test_data():
'id': uuid.uuid4().hex
},
{
- 'url':'http://public.localhost:5000/v3',
- 'region':'RegionOne',
+ 'url': 'http://public.localhost:5000/v3',
+ 'region': 'RegionOne',
'interface': 'public',
'id': uuid.uuid4().hex
}
@@ -129,9 +129,9 @@ def generate_test_data():
'id': uuid.uuid4().hex
},
{
- 'url':'http://nova-public.localhost:8774/v2.0/%s' \
+ 'url': 'http://nova-public.localhost:8774/v2.0/%s' \
% (project_dict_1['id']),
- 'region':'RegionOne',
+ 'region': 'RegionOne',
'interface': 'public',
'id': uuid.uuid4().hex
},
@@ -150,9 +150,9 @@ def generate_test_data():
'id': uuid.uuid4().hex
},
{
- 'url':'http://nova2-public.localhost:8774/v2.0/%s' \
+ 'url': 'http://nova2-public.localhost:8774/v2.0/%s' \
% (project_dict_1['id']),
- 'region':'RegionTwo',
+ 'region': 'RegionTwo',
'interface': 'public',
'id': uuid.uuid4().hex
}
diff --git a/openstack_auth/user.py b/openstack_auth/user.py
index ba106ba..231bd18 100644
--- a/openstack_auth/user.py
+++ b/openstack_auth/user.py
@@ -262,7 +262,7 @@ class User(AnonymousUser):
if service['type'] == 'identity':
continue
for endpoint in service['endpoints']:
- if not endpoint['region'] in regions:
+ if endpoint['region'] not in regions:
regions.append(endpoint['region'])
return regions
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..084ef49
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,41 @@
+[tox]
+envlist = py26,py27,py27dj14,pep8,py33
+
+[testenv]
+setenv = VIRTUAL_ENV={envdir}
+ NOSE_WITH_OPENSTACK=1
+ NOSE_OPENSTACK_COLOR=1
+ NOSE_OPENSTACK_RED=0.05
+ NOSE_OPENSTACK_YELLOW=0.025
+ NOSE_OPENSTACK_SHOW_ELAPSED=1
+deps = mox
+commands = python setup.py test
+
+[testenv:pep8]
+commands = flake8
+
+[testenv:venv]
+commands = {posargs}
+
+[tox:jenkins]
+downloadcache = ~/cache/pip
+
+[flake8]
+builtins = _
+exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py
+# E121 continuation line indentation is not a multiple of four
+# E126 continuation line over-indented for hanging indent
+# E127 continuation line over-indented for visual indent
+# E128 continuation line under-indented for visual indent
+# F401 '<smth>' imported but unused
+# F403 'from <smth> import *' used; unable to detect undefined names
+# F841 local variable '<smth>' is assigned to but never used
+# F999 syntax error in doctest
+# H201 no 'except:' at least use 'except Exception:'
+# H302 import only modules.'from optparse import make_option' does not import a module
+# H303 No wildcard (*) import.
+# H304 No relative imports. 'from .views import IndexView' is a relative import
+# H4xx docstrings
+# H701 empty localization string
+# H702 Formatting operation should be outside of localization method call
+ignore = E121,E126,E127,E128,E501,E502,F403,F841,F999,H201,H301,H306,H302,H303,H304,H4,H701,H702