/unit_tests/test_multiprocess_runner.py
https://bitbucket.org/jpellerin/nose/ · Python · 120 lines · 93 code · 27 blank · 0 comment · 3 complexity · 5139f7a589aca0866e35ff9985c7fbc8 MD5 · raw file
- import unittest
- import imp
- import sys
- from nose.loader import TestLoader
- from nose.plugins import multiprocess
- from nose.suite import ContextSuite
- class T_fixt:
- def setupClass(cls):
- pass
- setupClass = classmethod(setupClass)
- def test_a(self):
- pass
- def test_b(self):
- pass
-
- class T:
- def test_a(self):
- pass
- def test_b(self):
- pass
- class TestMultiProcessTestRunner(unittest.TestCase):
- def test_next_batch_with_classes(self):
- r = multiprocess.MultiProcessTestRunner()
- l = TestLoader()
- tests = list(r.nextBatch(ContextSuite(
- tests=[l.makeTest(T_fixt), l.makeTest(T)])))
- print tests
- self.assertEqual(len(tests), 3)
- def test_next_batch_with_module_fixt(self):
- mod_with_fixt = imp.new_module('mod_with_fixt')
- sys.modules['mod_with_fixt'] = mod_with_fixt
- def teardown():
- pass
- class Test(T):
- pass
- mod_with_fixt.Test = Test
- mod_with_fixt.teardown = teardown
- Test.__module__ = 'mod_with_fixt'
- r = multiprocess.MultiProcessTestRunner()
- l = TestLoader()
- tests = list(r.nextBatch(l.loadTestsFromModule(mod_with_fixt)))
- print tests
- self.assertEqual(len(tests), 1)
- def test_next_batch_with_module(self):
- mod_no_fixt = imp.new_module('mod_no_fixt')
- sys.modules['mod_no_fixt'] = mod_no_fixt
- class Test2(T):
- pass
- class Test_fixt(T_fixt):
- pass
- mod_no_fixt.Test = Test2
- Test2.__module__ = 'mod_no_fixt'
- mod_no_fixt.Test_fixt = Test_fixt
- Test_fixt.__module__ = 'mod_no_fixt'
- r = multiprocess.MultiProcessTestRunner()
- l = TestLoader()
- tests = list(r.nextBatch(l.loadTestsFromModule(mod_no_fixt)))
- print tests
- self.assertEqual(len(tests), 3)
- def test_next_batch_with_generator_method(self):
- class Tg:
- def test_gen(self):
- for i in range(0, 3):
- yield self.check, i
- def check(self, val):
- pass
- r = multiprocess.MultiProcessTestRunner()
- l = TestLoader()
- tests = list(r.nextBatch(l.makeTest(Tg)))
- print tests
- print [r.address(t) for t in tests]
- self.assertEqual(len(tests), 1)
- def test_next_batch_can_split_set(self):
- mod_with_fixt2 = imp.new_module('mod_with_fixt2')
- sys.modules['mod_with_fixt2'] = mod_with_fixt2
- def setup():
- pass
- class Test(T):
- pass
- class Test_fixt(T_fixt):
- pass
- mod_with_fixt2.Test = Test
- mod_with_fixt2.Test_fixt = Test_fixt
- mod_with_fixt2.setup = setup
- mod_with_fixt2._multiprocess_can_split_ = True
- Test.__module__ = 'mod_with_fixt2'
- Test_fixt.__module__ = 'mod_with_fixt2'
- r = multiprocess.MultiProcessTestRunner()
- l = TestLoader()
- tests = list(r.nextBatch(l.loadTestsFromModule(mod_with_fixt2)))
- print tests
- self.assertEqual(len(tests), 3)
-
-
- if __name__ == '__main__':
- unittest.main()