def assertSuitesEqual(self, test1, names): loader = TestLoader() names1 = testNames(test1) names2 = testNames(TestSuite(map(loader.loadByName, names))) names1.sort() names2.sort() self.assertEqual(names1, names2)
def assertSuitesEqual(self, test1, names): loader = runner.TestLoader() names1 = testNames(test1) names2 = testNames(runner.TestSuite(map(loader.loadByName, names))) names1.sort() names2.sort() self.assertEqual(names1, names2)
def test_preserveArgumentOrder(self): """ Multiple tests passed on the command line are not reordered. """ tests = [ "twisted.trial.test.test_tests", "twisted.trial.test.test_assertions", "twisted.trial.test.test_deferred", ] self.config.parseOptions(tests) suite = trial._getSuite(self.config) names = testNames(suite) expectedSuite = TestSuite(map(self.loader.loadByName, tests)) expectedNames = testNames(expectedSuite) self.assertEqual(names, expectedNames)
def test_preserveArgumentOrder(self): """ Multiple tests passed on the command line are not reordered. """ tests = [ "twisted.trial.test.test_tests", "twisted.trial.test.test_assertions", "twisted.trial.test.test_deferreds", ] self.config.parseOptions(tests) suite = trial._getSuite(self.config) names = testNames(suite) expectedSuite = TestSuite(map(self.loader.loadByName, tests)) expectedNames = testNames(expectedSuite) self.assertEqual(names, expectedNames)
def test_alphabeticalPackage(self): """ --order=alphabetical causes trial to run test modules within a given package alphabetically, with tests within each module alphabetized. """ self.config.parseOptions(["--order", "alphabetical", "twisted.trial.test"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config["tests"]) names = testNames(suite) self.assertTrue(names, msg="Failed to load any tests!") self.assertEqual(names, sorted(names))
def test_alphabeticalPackage(self): """ --order=alphabetical causes trial to run test modules within a given package alphabetically, with tests within each module alphabetized. """ self.config.parseOptions([ "--order", "alphabetical", "twisted.trial.test"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) names = testNames(suite) self.assertTrue(names, msg="Failed to load any tests!") self.assertEqual(names, sorted(names))
def test_toptobottomPackage(self): """ --order=toptobottom causes trial to run test modules within a given package alphabetically, with tests within each module run top to bottom. """ self.config.parseOptions([ "--order", "toptobottom", "twisted.trial.test"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) names = testNames(suite) # twisted.trial.test.test_module, so split and key on the first 4 to # get stable alphabetical sort on those self.assertEqual( names, sorted(names, key=lambda name : name.split(".")[:4]), )
def test_toptobottomMissingSource(self): """ --order=toptobottom detects the source line of methods from modules whose source file is missing. """ tempdir = self.mktemp() package = FilePath(tempdir).child("twisted_toptobottom_temp") package.makedirs() package.child("__init__.py").setContent(b"") package.child("test_missing.py").setContent( textwrap.dedent( """ from twisted.trial.unittest import TestCase class TestMissing(TestCase): def test_second(self): pass def test_third(self): pass def test_fourth(self): pass def test_first(self): pass """ ).encode("utf8") ) pathEntry = package.parent().path sys.path.insert(0, pathEntry) self.addCleanup(sys.path.remove, pathEntry) from twisted_toptobottom_temp import test_missing self.addCleanup(sys.modules.pop, "twisted_toptobottom_temp") self.addCleanup(sys.modules.pop, test_missing.__name__) package.child("test_missing.py").remove() self.config.parseOptions( ["--order", "toptobottom", "twisted.trial.test.ordertests"] ) loader = trial._getLoader(self.config) suite = loader.loadModule(test_missing) self.assertEqual( testNames(suite), [ "twisted_toptobottom_temp.test_missing.TestMissing.test_second", "twisted_toptobottom_temp.test_missing.TestMissing.test_third", "twisted_toptobottom_temp.test_missing.TestMissing.test_fourth", "twisted_toptobottom_temp.test_missing.TestMissing.test_first", ], )
def test_toptobottomModule(self): """ --order=toptobottom causes trial to run test classes within a given module from top to bottom as they are defined in the module's source. """ self.config.parseOptions( ["--order", "toptobottom", "twisted.trial.test.ordertests"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual(testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.BazTest.test_baz', 'twisted.trial.test.ordertests.BarTest.test_bar' ])
def test_alphabeticalModule(self): """ --order=alphabetical causes trial to run test classes within a given module alphabetically. """ self.config.parseOptions( ["--order", "alphabetical", "twisted.trial.test.ordertests"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual(testNames(suite), [ 'twisted.trial.test.ordertests.BarTest.test_bar', 'twisted.trial.test.ordertests.BazTest.test_baz', 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third' ])
def test_alphabetical(self): """ --order=alphabetical causes trial to run tests alphabetically within each test case. """ self.config.parseOptions([ "--order", "alphabetical", "twisted.trial.test.ordertests.FooTest" ]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual(testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third' ])
def test_alphabetical(self): """ --order=alphabetical causes trial to run tests alphabetically within each test case. """ self.config.parseOptions([ "--order", "alphabetical", "twisted.trial.test.ordertests.FooTest"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual( testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third'])
def test_alphabeticalModule(self): """ --order=alphabetical causes trial to run test classes within a given module alphabetically. """ self.config.parseOptions([ "--order", "alphabetical", "twisted.trial.test.ordertests"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual( testNames(suite), [ 'twisted.trial.test.ordertests.BarTest.test_bar', 'twisted.trial.test.ordertests.BazTest.test_baz', 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third'])
def test_toptobottomModule(self): """ --order=toptobottom causes trial to run test classes within a given module from top to bottom as they are defined in the module's source. """ self.config.parseOptions([ "--order", "toptobottom", "twisted.trial.test.ordertests"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual( testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third', 'twisted.trial.test.ordertests.FooTest.test_fourth', 'twisted.trial.test.ordertests.BazTest.test_baz', 'twisted.trial.test.ordertests.BarTest.test_bar'])
def test_toptobottom(self): """ --order=toptobottom causes trial to run test methods within a given test case from top to bottom as they are defined in the body of the class. """ self.config.parseOptions([ "--order", "toptobottom", "twisted.trial.test.ordertests.FooTest" ]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual(testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third', 'twisted.trial.test.ordertests.FooTest.test_fourth' ])
def test_toptobottom(self): """ --order=toptobottom causes trial to run test methods within a given test case from top to bottom as they are defined in the body of the class. """ self.config.parseOptions([ "--order", "toptobottom", "twisted.trial.test.ordertests.FooTest"]) loader = trial._getLoader(self.config) suite = loader.loadByNames(self.config['tests']) self.assertEqual( testNames(suite), [ 'twisted.trial.test.ordertests.FooTest.test_first', 'twisted.trial.test.ordertests.FooTest.test_second', 'twisted.trial.test.ordertests.FooTest.test_third', 'twisted.trial.test.ordertests.FooTest.test_fourth'])
def test_toptobottomMissingSource(self): """ --order=toptobottom detects the source line of methods from modules whose source file is missing. """ tempdir = self.mktemp() package = FilePath(tempdir).child('twisted_toptobottom_temp') package.makedirs() package.child('__init__.py').setContent(b'') package.child('test_missing.py').setContent(textwrap.dedent(''' from twisted.trial.unittest import TestCase class TestMissing(TestCase): def test_second(self): pass def test_third(self): pass def test_fourth(self): pass def test_first(self): pass ''').encode('utf8')) pathEntry = package.parent().path sys.path.insert(0, pathEntry) self.addCleanup(sys.path.remove, pathEntry) from twisted_toptobottom_temp import test_missing self.addCleanup(sys.modules.pop, 'twisted_toptobottom_temp') self.addCleanup(sys.modules.pop, test_missing.__name__) package.child('test_missing.py').remove() self.config.parseOptions([ "--order", "toptobottom", "twisted.trial.test.ordertests"]) loader = trial._getLoader(self.config) suite = loader.loadModule(test_missing) self.assertEqual( testNames(suite), [ 'twisted_toptobottom_temp.test_missing.TestMissing.test_second', 'twisted_toptobottom_temp.test_missing.TestMissing.test_third', 'twisted_toptobottom_temp.test_missing.TestMissing.test_fourth', 'twisted_toptobottom_temp.test_missing.TestMissing.test_first'])
def test_testNames(self): """ Check that the testNames helper method accurately collects the names of tests in suite. """ self.assertEqual(testNames(self), [self.id()])