Cleanup Python 3 changes

* Rework BrickException to simplify the code. Revert partially changes
  done to port os-brick to Python 3, without losing Python 3
  compatibility.
* tox.ini: run py34 tests using the commands of the default test
  environent. All os-brick tests now pass on Python 3.4, so testr test
  runner can be used to run tests in parallel, get the test repository,
  etc.
* tox.ini: exchange order of py27 and py34 in envlist: py34 must be
  run first to workaround a testrepository bug (see the note below).
* README: give advices on tox/testrepository issues with python 2/3

Change-Id: If80e01e802079afea3f2ea8051c76afffa47fa03
This commit is contained in:
Victor Stinner 2015-07-01 17:25:59 +02:00
parent d71f5da3a6
commit c7446ccc43
3 changed files with 10 additions and 23 deletions

View File

@ -11,7 +11,15 @@ Features
* Discovery of volumes being attached to a host for many transport protocols.
* Removal of volumes from a host.
Hacking
-------
Hacking on brick requires python-gdbm (for Debian derived distributions),
Python 2.7 and Python 3.4. A recent tox is required, as is a recent virtualenv
(13.1.0 or newer).
If "tox -e py34" fails with the error "db type could not be determined", remove
the .testrepository/ directory and then run "tox -e py34".
For any other imformation, refer to the parent project, Cinder:
https://github.com/openstack/cinder

View File

@ -37,7 +37,6 @@ class BrickException(Exception):
def __init__(self, message=None, **kwargs):
self.kwargs = kwargs
self.kwargs['message'] = message
if 'code' not in self.kwargs:
try:
@ -45,11 +44,7 @@ class BrickException(Exception):
except AttributeError:
pass
for k, v in self.kwargs.items():
if isinstance(v, Exception):
self.kwargs[k] = six.text_type(v)
if self._should_format():
if not message:
try:
message = self.message % kwargs
@ -73,9 +68,6 @@ class BrickException(Exception):
def __unicode__(self):
return six.text_type(self.msg)
def _should_format(self):
return self.kwargs['message'] is None or '%(message)' in self.message
class NotFound(BrickException):
message = _("Resource could not be found.")

15
tox.ini
View File

@ -1,6 +1,6 @@
[tox]
minversion = 1.6
envlist = py27,py34,pep8
envlist = py34,py27,pep8
skipsdist = True
[testenv]
@ -28,19 +28,6 @@ commands = python setup.py testr --coverage --testr-args='{posargs}'
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:py34]
commands =
find . -type f -name "*.pyc" -delete
python -m testtools.run \
os_brick.tests.test_brick \
os_brick.tests.test_exception \
os_brick.tests.test_utils \
os_brick.tests.initiator.test_connector \
os_brick.tests.initiator.test_linuxfc \
os_brick.tests.initiator.test_linuxrbd \
os_brick.tests.initiator.test_linuxscsi
[flake8]
# H803 skipped on purpose per list discussion.
# E123, E125 skipped as they are invalid PEP-8.