示例#1
0
    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))