summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2009-03-08 15:55:35 +1100
committerRobert Collins <robertc@robertcollins.net>2009-03-08 15:55:35 +1100
commitdfdccc00f562795e6a2cc817682ff088ac82eea4 (patch)
treefd5de404a0fd91a7d24c19d5bdd0c84e9523a20a
parentd0b58cf3cd9c2e73faa5fc1e1b7e069ad258b818 (diff)
downloadtestscenarios-dfdccc00f562795e6a2cc817682ff088ac82eea4.tar.gz
Support debug() on TestWithScenarios.
-rw-r--r--lib/testscenarios/testcase.py15
-rw-r--r--lib/testscenarios/tests/test_testcase.py15
2 files changed, 28 insertions, 2 deletions
diff --git a/lib/testscenarios/testcase.py b/lib/testscenarios/testcase.py
index 23907fb..0c34c71 100644
--- a/lib/testscenarios/testcase.py
+++ b/lib/testscenarios/testcase.py
@@ -37,15 +37,26 @@ class TestWithScenarios(unittest.TestCase):
subclass (or overridden compatibly with TestWithScenarios).
"""
+ def _get_scenarios(self):
+ return getattr(self, 'scenarios', None)
+
def countTestCases(self):
- scenarios = getattr(self, 'scenarios', None)
+ scenarios = self._get_scenarios()
if not scenarios:
return 1
else:
return len(scenarios)
+ def debug(self):
+ scenarios = self._get_scenarios()
+ if scenarios:
+ for test in generate_scenarios(self):
+ test.debug()
+ else:
+ return super(TestWithScenarios, self).debug()
+
def run(self, result=None):
- scenarios = getattr(self, 'scenarios', None)
+ scenarios = self._get_scenarios()
if scenarios:
for test in generate_scenarios(self):
test.run(result)
diff --git a/lib/testscenarios/tests/test_testcase.py b/lib/testscenarios/tests/test_testcase.py
index 8453c18..8973de1 100644
--- a/lib/testscenarios/tests/test_testcase.py
+++ b/lib/testscenarios/tests/test_testcase.py
@@ -131,3 +131,18 @@ class TestTestWithScenarios(unittest.TestCase):
pass
test = ReferenceTest("test_check_foo")
self.assertEqual(2, test.countTestCases())
+
+ def test_debug_2_scenarios(self):
+ log = []
+ class ReferenceTest(testscenarios.TestWithScenarios):
+ scenarios = [
+ ('1', {'foo': 1, 'bar': 2}),
+ ('2', {'foo': 2, 'bar': 4})]
+ def test_check_foo(self):
+ log.append(self)
+ test = ReferenceTest("test_check_foo")
+ test.debug()
+ self.assertEqual(2, len(log))
+ self.assertEqual(None, log[0].scenarios)
+ self.assertEqual(None, log[1].scenarios)
+ self.assertNotEqual(log[0].id(), log[1].id())