From dfdccc00f562795e6a2cc817682ff088ac82eea4 Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Sun, 8 Mar 2009 15:55:35 +1100 Subject: Support debug() on TestWithScenarios. --- lib/testscenarios/testcase.py | 15 +++++++++++++-- lib/testscenarios/tests/test_testcase.py | 15 +++++++++++++++ 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()) -- cgit v1.2.1