~spiv/testtools/test-parameterisation

« back to all changes in this revision

Viewing changes to pyunit3k/tests/test_pyunit3k.py

  • Committer: Andrew Bennetts
  • Date: 2008-09-15 12:59:02 UTC
  • Revision ID: andrew@puzzling.org-20080915125902-w2dit2rmwnjm2y72
First draft of multiply_test_suite_by_scenarios

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
"""Tests for extensions to the base test library."""
4
4
 
5
 
from pyunit3k import TestCase, clone_test_with_new_id
 
5
import unittest
 
6
 
 
7
from pyunit3k import (
 
8
    TestCase,
 
9
    clone_test_with_new_id,
 
10
    iterate_tests,
 
11
    multiply_test_suite_by_scenarios,
 
12
    Scenario,
 
13
    )
6
14
from pyunit3k.tests.helpers import LoggingResult
7
15
 
8
16
 
375
383
            "the original test instance should be unchanged.")
376
384
 
377
385
 
 
386
class TestParameteriseTestSuite(TestCase):
 
387
    """Tests for multiply_test_suite_by_scenario."""
 
388
 
 
389
    def test_empty_suite(self):
 
390
        empty_suite = unittest.TestSuite()
 
391
        new_suite = multiply_test_suite_by_scenarios(empty_suite)
 
392
        self.assertEqual([], list(iterate_tests(new_suite)))
 
393
 
 
394
    def test_empty_suite(self):
 
395
        class FooTestCase(TestCase):
 
396
            def test_foo(self):
 
397
                pass
 
398
        test = FooTestCase('test_foo')
 
399
        suite = unittest.TestSuite()
 
400
        suite.addTest(test)
 
401
        new_suite = multiply_test_suite_by_scenarios(
 
402
            suite,
 
403
            Scenario('one', x=1),
 
404
            Scenario('two', x=2),
 
405
            )
 
406
        tests = list(new_suite)
 
407
        self.assertEqual(
 
408
            ['test_foo(one)', 'test_foo(two)'],
 
409
            [test.id()[-13:] for test in tests])
 
410
        self.assertEqual([1, 2], [test.scenario.x for test in tests])
 
411
 
 
412
 
378
413
def test_suite():
379
414
    from unittest import TestLoader
380
415
    return TestLoader().loadTestsFromName(__name__)