def test_runner(self): # hopefully the universe won't implode as we're using our runner to # test our runner runner = WRunner() # check media root handling runner.setup_test_environment() self.assertTrue(os.path.isdir(self.media_dir)) # do it again to make sure directory already existing doesn't blow # anything up runner.setup_test_environment() # check test loader with self.assertRaises(GotHere): runner.setup_databases() # -- test various labels work expected = [ 'test_same_order (awl.tests.test_ranked.GroupedTests)', 'test_same_order (awl.tests.test_ranked.AloneTests)', 'test_too_large (awl.tests.test_ranked.GroupedTests)', ] suite = runner.build_suite([ 'awl.tests.test_ranked.GroupedTests.test_too_large', '=_same_order']) self.assert_test_strings(expected, suite) # shortcuts only expected = [ 'test_same_order (awl.tests.test_ranked.GroupedTests)', 'test_same_order (awl.tests.test_ranked.AloneTests)', ] suite = runner.build_suite(['=_same_order']) self.assert_test_strings(expected, suite) # test no labels at all suite = runner.build_suite([]) self.assertTrue(list(suite)) # -- check media root cleanup with mock.patch("django.test.runner.DiscoverRunner.teardown_databases"): # django 1.8 & 1.9 expect different values of old_config, mocked # out the super teardown_databases class so we don't care, just # want to make sure the post super() call steps get invoked runner.teardown_databases(old_config=[]) self.assertFalse(os.path.exists(self.media_dir))