~testtools-committers/testscenarios/trunk

« back to all changes in this revision

Viewing changes to lib/testscenarios/tests/test_scenarios.py

  • Committer: Robert Collins
  • Date: 2010-02-01 04:49:05 UTC
  • mfrom: (12.2.1 testscenarios.devel)
  • Revision ID: robertc@robertcollins.net-20100201044905-e7q9bubgoj2duu63
Merge patch from Ben Finney making tests with a shortDescription have that altered as well as the id.

Show diffs side-by-side

added added

removed removed

Lines of Context:
104
104
 
105
105
class TestApplyScenario(testtools.TestCase):
106
106
 
107
 
    def test_apply_scenario_sets_id_and_attributes(self):
 
107
    def setUp(self):
 
108
        super(TestApplyScenario, self).setUp()
 
109
 
 
110
        self.scenario_name = 'demo'
 
111
        self.scenario_attrs = {'foo': 'bar'}
 
112
        self.scenario = (self.scenario_name, self.scenario_attrs)
 
113
 
108
114
        class ReferenceTest(unittest.TestCase):
109
115
            def test_pass(self):
110
116
                pass
111
 
        test = ReferenceTest("test_pass")
112
 
        result = apply_scenario(('demo', {'foo': 'bar'}), test)
113
 
        self.assertEqual(
114
 
            'testscenarios.tests.test_scenarios.ReferenceTest.test_pass(demo)',
115
 
            result.id())
116
 
        self.assertEqual('bar', result.foo)
117
 
 
 
117
            def test_pass_with_docstring(self):
 
118
                """ The test that always passes.
 
119
 
 
120
                    This test case has a PEP 257 conformant docstring,
 
121
                    with its first line being a brief synopsis and the
 
122
                    rest of the docstring explaining that this test
 
123
                    does nothing but pass unconditionally.
 
124
 
 
125
                    """
 
126
                pass
 
127
 
 
128
        self.ReferenceTest = ReferenceTest
 
129
 
 
130
    def test_sets_specified_id(self):
 
131
        raw_test = self.ReferenceTest('test_pass')
 
132
        raw_id = "testscenarios.tests.test_scenarios.ReferenceTest.test_pass"
 
133
        scenario_name = self.scenario_name
 
134
        expect_id = "%(raw_id)s(%(scenario_name)s)" % vars()
 
135
        modified_test = apply_scenario(self.scenario, raw_test)
 
136
        self.assertEqual(expect_id, modified_test.id())
 
137
 
 
138
    def test_sets_specified_attributes(self):
 
139
        raw_test = self.ReferenceTest('test_pass')
 
140
        modified_test = apply_scenario(self.scenario, raw_test)
 
141
        self.assertEqual('bar', modified_test.foo)
 
142
 
 
143
    def test_appends_scenario_name_to_short_description(self):
 
144
        raw_test = self.ReferenceTest('test_pass_with_docstring')
 
145
        modified_test = apply_scenario(self.scenario, raw_test)
 
146
        raw_doc = self.ReferenceTest.test_pass_with_docstring.__doc__
 
147
        raw_desc = raw_doc.split("\n")[0].strip()
 
148
        scenario_name = self.scenario_name
 
149
        expect_desc = "%(raw_desc)s (%(scenario_name)s)" % vars()
 
150
        self.assertEqual(expect_desc, modified_test.shortDescription())
118
151
 
119
152
class TestApplyScenarios(testtools.TestCase):
120
153