diff options
Diffstat (limited to 'lib/testscenarios/testcase.py')
-rw-r--r-- | lib/testscenarios/testcase.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/testscenarios/testcase.py b/lib/testscenarios/testcase.py index f8c0e8e..0b8898c 100644 --- a/lib/testscenarios/testcase.py +++ b/lib/testscenarios/testcase.py @@ -23,5 +23,19 @@ __all__ = [ import unittest +from testtools.testcase import clone_test_with_new_id + class TestWithScenarios(unittest.TestCase): """A TestCase with support for scenarios via a scenarios attribute.""" + + def run(self, result=None): + scenarios = getattr(self, 'scenarios', None) + if scenarios: + for name, parameters in scenarios: + newtest = clone_test_with_new_id(self, + self.id() + '(' + name + ')') + newtest.scenarios = None + newtest.run(result) + return + else: + return super(TestWithScenarios, self).run(result) |