From de914ad448929cc056621e754a61b13ad5defc2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A9on=20Blanc?= Date: Mon, 1 Jun 2015 00:07:23 +0200 Subject: [PATCH] Remove non-ASCII characters from a critical exception's message As explained in #478, when a step in the Background contains an non-ASCII character, the user is not warned. I don't find any other convincing fix for this problem... --- lettuce/__init__.py | 3 +++ lettuce/exceptions.py | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lettuce/__init__.py b/lettuce/__init__.py index 64416469d..9b37e4567 100644 --- a/lettuce/__init__.py +++ b/lettuce/__init__.py @@ -180,6 +180,9 @@ def run(self): except exceptions.LettuceSyntaxError, e: sys.stderr.write(e.msg) failed = True + except exceptions.NoDefinitionFound, e: + sys.stderr.write(e.msg) + failed = True except: if not self.failfast: e = sys.exc_info()[1] diff --git a/lettuce/exceptions.py b/lettuce/exceptions.py index 158cd567c..27436c859 100644 --- a/lettuce/exceptions.py +++ b/lettuce/exceptions.py @@ -28,8 +28,11 @@ class NoDefinitionFound(Exception): """ def __init__(self, step): self.step = step - super(NoDefinitionFound, self).__init__( - 'The step r"%s" is not defined' % self.step.sentence) + + error = filter(lambda x : 0 <= ord(x) <= 127, + 'The step r"%s" is not defined' % self.step.sentence) + super(NoDefinitionFound, self).__init__(error) + class ReasonToFail(object):