def test_unforcedGc(self): """ The test loader should only enable forced garbage collection if the option is passed to the trial script. """ loader = trial._getLoader(self.config) self.assertEqual(False, loader.forceGarbageCollection)
def test_untilFailureSuite(self): """ The C{until-failure} configuration uses the L{TestSuite} to keep instances alive across runs. """ self.config['until-failure'] = True loader = trial._getLoader(self.config) self.assertEqual(loader.suiteFactory, TestSuite)
def test_forcedGc(self): """ Passing the '--force-gc' option to the trial script should set the appropriate flag in the test loader. """ self.config['force-gc'] = True loader = trial._getLoader(self.config) self.assertEqual(True, loader.forceGarbageCollection)
def test_untilFailureSuite(self): """ The C{until-failure} configuration uses the L{runner.TestSuite} to keep instances alive across runs. """ self.config['until-failure'] = True loader = trial._getLoader(self.config) self.assertEquals(loader.suiteFactory, runner.TestSuite)
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_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_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_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_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_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_defaultSuite(self): """ By default, the loader should use L{DestructiveTestSuite} """ loader = trial._getLoader(self.config) self.assertEqual(loader.suiteFactory, DestructiveTestSuite)
def test_defaultSuite(self): """ By default, the loader should use L{runner.DestructiveTestSuite} """ loader = trial._getLoader(self.config) self.assertEquals(loader.suiteFactory, runner.DestructiveTestSuite)