From a96c6c4c5b73223c719d884ff2b2f9f038a55b3f Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Sun, 8 Apr 2018 12:42:03 +0000 Subject: [PATCH] Tweaked the test runner to more consistently force the test coverage tests to be run last. - Legacy-Id: 15030 --- ietf/utils/test_runner.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ietf/utils/test_runner.py b/ietf/utils/test_runner.py index f883b31c2..3d4d19b07 100644 --- a/ietf/utils/test_runner.py +++ b/ietf/utils/test_runner.py @@ -53,6 +53,7 @@ from coverage.results import Numbers from coverage.misc import NotPython from django.conf import settings +from django.contrib.staticfiles.testing import StaticLiveServerTestCase from django.db.migrations.loader import MigrationLoader from django.db.migrations.operations.fields import FieldOperation from django.db.migrations.operations.models import ModelOperation @@ -68,9 +69,9 @@ debug.debug = True import ietf import ietf.utils.mail -from ietf.utils.test_smtpserver import SMTPTestServerDriver -from ietf.utils.test_utils import TestCase from ietf.checks import maybe_create_svn_symlinks +from ietf.utils.test_smtpserver import SMTPTestServerDriver + loaded_templates = set() visited_urls = set() @@ -263,7 +264,7 @@ class CoverageReporter(Reporter): return result -class CoverageTest(TestCase): +class CoverageTest(unittest.TestCase): def __init__(self, test_runner=None, **kwargs): self.runner = test_runner @@ -629,6 +630,7 @@ class IetfTestRunner(DiscoverRunner): def run_tests(self, test_labels, extra_tests=[], **kwargs): global old_destroy, old_create, test_database_name, template_coverage_collection from django.db import connection + from ietf.doc.tests import TemplateTagTest # Tests that involve switching back and forth between the real # database and the test database are way too dangerous to run @@ -657,7 +659,12 @@ class IetfTestRunner(DiscoverRunner): CoverageTest(test_runner=self, methodName='code_coverage_test'), ] - self.reorder_by += (unittest.TestCase, ) # see to it that the coverage tests come last + # ensure that the coverage tests come last. Specifically list + # TemplateTagTest before CoverageTest. If this list contains + # parent classes to later subclasses, the parent classes will + # determine the ordering, so use the most specific classes + # necessary to get the right ordering: + self.reorder_by += (StaticLiveServerTestCase, TemplateTagTest, CoverageTest, ) failures = super(IetfTestRunner, self).run_tests(test_labels, extra_tests=extra_tests, **kwargs)