From c2c24cd3d96187496272fbee8229b321b66833d2 Mon Sep 17 00:00:00 2001 From: Nik Nyby Date: Fri, 11 Dec 2015 16:51:21 -0500 Subject: [PATCH] WIP: python3 support - #458 --- .travis.yml | 10 +++++----- lettuce/__init__.py | 12 ++++++------ lettuce/core.py | 2 +- lettuce/django/server.py | 8 ++++---- lettuce/django/steps/models.py | 14 +++++++------- lettuce/registry.py | 4 ++-- requirements.txt | 2 -- 7 files changed, 25 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee440a3ac..04dc30bd1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,10 @@ language: python +sudo: false python: - "2.7" -# command to install dependencies + - "3.4" + - "3.5" install: - pip install -r requirements.txt - # Deal with issue on Travis builders re: multiprocessing.Queue :( - - "sudo rm -rf /dev/shm && sudo ln -s /run/shm /dev/shm" -# command to run tests -script: make unit functional +script: + - make unit functional diff --git a/lettuce/__init__.py b/lettuce/__init__.py index df70a073b..9c0abffe4 100644 --- a/lettuce/__init__.py +++ b/lettuce/__init__.py @@ -171,7 +171,7 @@ def run(self): try: self.loader.find_and_load_step_definitions() except StepLoadingError as e: - print "Error loading step definitions:\n", e + print("Error loading step definitions:\n", e) return call_hook('before', 'all') @@ -189,18 +189,18 @@ def run(self): except exceptions.LettuceSyntaxError as e: sys.stderr.write(e.msg) failed = True - except exceptions.NoDefinitionFound, e: + except (exceptions.NoDefinitionFound, e): sys.stderr.write(e.msg) failed = True except: if not self.failfast: e = sys.exc_info()[1] - print "Died with %s" % str(e) + print("Died with %s" % str(e)) traceback.print_exc() else: - print - print ("Lettuce aborted running any more tests " - "because was called with the `--failfast` option") + print('') + print("Lettuce aborted running any more tests " + "because was called with the `--failfast` option") failed = True diff --git a/lettuce/core.py b/lettuce/core.py index 97f7921a4..95dc18d0c 100644 --- a/lettuce/core.py +++ b/lettuce/core.py @@ -886,7 +886,7 @@ def run(self, ignore_case): try: results.append(step.run(ignore_case)) except Exception as e: - print e + print(e) pass call_hook('after_each', 'step', step) diff --git a/lettuce/django/server.py b/lettuce/django/server.py index 18c98313a..1dfcf6d6e 100644 --- a/lettuce/django/server.py +++ b/lettuce/django/server.py @@ -291,7 +291,7 @@ def start(self): if getattr(settings, 'LETTUCE_SERVE_ADMIN_MEDIA', False): msg += ' (as per settings.LETTUCE_SERVE_ADMIN_MEDIA=True)' - print "%s..." % msg + print("%s..." % msg) self._server.start() self._server.wait() @@ -306,7 +306,7 @@ def start(self): 'python manage.py --no-server' % addrport, ) - print "Django's builtin server is running at %s:%d" % addrport + print("Django's builtin server is running at %s:%d" % addrport) def stop(self, fail=False): pid = self._server.pid @@ -349,9 +349,9 @@ def start(self): port=self.port) LiveServerTestCase.setUpClass() - print "Django's builtin server is running at {address}:{port}".format( + print("Django's builtin server is running at {address}:{port}".format( address=self.address, - port=self.port) + port=self.port)) def stop(self, fail=False): LiveServerTestCase.tearDownClass() diff --git a/lettuce/django/steps/models.py b/lettuce/django/steps/models.py index f4aa31092..a96266490 100644 --- a/lettuce/django/steps/models.py +++ b/lettuce/django/steps/models.py @@ -183,20 +183,20 @@ def _dump_model(model, attrs=None): """ for field in model._meta.fields: - print '%s=%s,' % (field.name, str(getattr(model, field.name))), + print('%s=%s,' % (field.name, str(getattr(model, field.name)))), if attrs is not None: for attr in attrs: - print '%s=%s,' % (attr, str(getattr(model, attr))), + print('%s=%s,' % (attr, str(getattr(model, attr)))), for field in model._meta.many_to_many: vals = getattr(model, field.name) - print '%s=%s (%i),' % ( + print('%s=%s (%i),' % ( field.name, ', '.join(map(str, vals.all())), - vals.count()), + vals.count())), - print + print('') def models_exist(model, data, queryset=None): @@ -237,11 +237,11 @@ def models_exist(model, data, queryset=None): model.__name__, hash_, filtered.query) except AssertionError as exc: - print exc + print(exc) failed += 1 if failed: - print "Rows in DB are:" + print("Rows in DB are:") for model in queryset.all(): _dump_model(model, extra_attrs.keys()) diff --git a/lettuce/registry.py b/lettuce/registry.py index 2f862a450..9d0e48226 100644 --- a/lettuce/registry.py +++ b/lettuce/registry.py @@ -152,9 +152,9 @@ def call_hook(situation, kind, *args, **kw): try: callback(*args, **kw) except Exception as e: - print "=" * 1000 + print("=" * 1000) traceback.print_exc(e) - print + print('') raise diff --git a/requirements.txt b/requirements.txt index 3a889cc8c..0c94d2be2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,6 +14,4 @@ python-subunit==1.2.0 sure==1.2.24 tornado==4.3 tox==2.3.0 -markment==0.2.21 -steadymark==0.6.0 testtools==1.8.1