summaryrefslogtreecommitdiff
path: root/lib/subunit/python/testtools/tests/test_testsuite.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2010-01-08 02:09:20 +0100
committerJelmer Vernooij <jelmer@samba.org>2010-01-16 19:53:49 +1300
commit28577aae928847e64a0274b5922e26e1f15d9916 (patch)
tree78f6b36e8166d3320120df0e1bc91fef7ce8f9b1 /lib/subunit/python/testtools/tests/test_testsuite.py
parentb6b46b4978dcaffa0cd9803c43b8a5f1c19e227e (diff)
downloadsamba-28577aae928847e64a0274b5922e26e1f15d9916.tar.gz
samba-28577aae928847e64a0274b5922e26e1f15d9916.tar.bz2
samba-28577aae928847e64a0274b5922e26e1f15d9916.zip
Import testtools as well, required for subunit.
Diffstat (limited to 'lib/subunit/python/testtools/tests/test_testsuite.py')
-rw-r--r--lib/subunit/python/testtools/tests/test_testsuite.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/subunit/python/testtools/tests/test_testsuite.py b/lib/subunit/python/testtools/tests/test_testsuite.py
new file mode 100644
index 0000000000..3f2f02758f
--- /dev/null
+++ b/lib/subunit/python/testtools/tests/test_testsuite.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2009 Jonathan M. Lange. See LICENSE for details.
+
+"""Test ConcurrentTestSuite and related things."""
+
+__metaclass__ = type
+
+import unittest
+
+from testtools import (
+ ConcurrentTestSuite,
+ iterate_tests,
+ TestCase,
+ )
+from testtools.matchers import (
+ Equals,
+ )
+from testtools.tests.helpers import LoggingResult
+
+
+class TestConcurrentTestSuiteRun(TestCase):
+
+ def test_trivial(self):
+ log = []
+ result = LoggingResult(log)
+ class Sample(TestCase):
+ def __hash__(self):
+ return id(self)
+
+ def test_method1(self):
+ pass
+ def test_method2(self):
+ pass
+ test1 = Sample('test_method1')
+ test2 = Sample('test_method2')
+ original_suite = unittest.TestSuite([test1, test2])
+ suite = ConcurrentTestSuite(original_suite, self.split_suite)
+ suite.run(result)
+ test1 = log[0][1]
+ test2 = log[-1][1]
+ self.assertIsInstance(test1, Sample)
+ self.assertIsInstance(test2, Sample)
+ self.assertNotEqual(test1.id(), test2.id())
+ # We expect the start/outcome/stop to be grouped
+ expected = [('startTest', test1), ('addSuccess', test1),
+ ('stopTest', test1), ('startTest', test2), ('addSuccess', test2),
+ ('stopTest', test2)]
+ self.assertThat(log, Equals(expected))
+
+ def split_suite(self, suite):
+ tests = list(iterate_tests(suite))
+ return tests[0], tests[1]
+
+
+def test_suite():
+ from unittest import TestLoader
+ return TestLoader().loadTestsFromName(__name__)