Refactored the code to skip coverage testing a bit, and added skipping of template and url coverage.

- Legacy-Id: 11472
This commit is contained in:
Henrik Levkowetz 2016-06-24 15:39:59 +00:00
parent 75fd4d2876
commit a36cf95572
5 changed files with 33 additions and 12 deletions

View file

@ -13,7 +13,7 @@ import debug # pyflakes:ignore
from ietf.group.models import Role, Group
from ietf.group.utils import get_group_role_emails, get_child_group_role_emails, get_group_ad_emails
from ietf.group.factories import GroupFactory
from ietf.utils.test_utils import set_coverage_checking
from ietf.utils.test_runner import set_coverage_checking
from ietf.utils.test_data import make_test_data
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent

View file

@ -13,7 +13,7 @@ import debug # pyflakes:ignore
from ietf.group import colors
from ietf.meeting.test_data import make_meeting_test_data
from ietf.meeting.models import SchedTimeSessAssignment
from ietf.utils.test_utils import set_coverage_checking
from ietf.utils.test_runner import set_coverage_checking
from ietf.utils.pipe import pipe
from ietf import settings

View file

@ -4,13 +4,14 @@ from decorator import decorator
from django.conf import settings
from test_runner import set_coverage_checking
@decorator
def skip_coverage(f, *args, **kwargs):
if settings.TEST_CODE_COVERAGE_CHECKER:
checker = settings.TEST_CODE_COVERAGE_CHECKER
checker.collector.pause()
set_coverage_checking(False)
result = f(*args, **kwargs)
checker.collector.resume()
set_coverage_checking(True)
return result
else:
return f(*args, **kwargs)

View file

@ -70,6 +70,10 @@ test_database_name = None
old_destroy = None
old_create = None
template_coverage_collection = None
url_coverage_collection = None
def safe_create_1(self, verbosity, *args, **kwargs):
global test_database_name, old_create
print " Creating test database..."
@ -103,13 +107,16 @@ def safe_destroy_0_1(*args, **kwargs):
return old_destroy(*args, **kwargs)
def template_coverage_loader(template_name, dirs):
loaded_templates.add(str(template_name))
if template_coverage_collection == True:
loaded_templates.add(str(template_name))
raise TemplateDoesNotExist
template_coverage_loader.is_usable = True
class RecordUrlsMiddleware(object):
def process_request(self, request):
visited_urls.add(request.path)
global url_coverage_collection
if url_coverage_collection == True:
visited_urls.add(request.path)
def get_url_patterns(module, apps=None):
def include(name):
@ -175,6 +182,18 @@ def save_test_results(failures, test_labels):
tfile.close()
def set_coverage_checking(flag=True):
global template_coverage_collection
global url_coverage_collection
if flag:
settings.TEST_CODE_COVERAGE_CHECKER.collector.resume()
template_coverage_collection = True
url_coverage_collection = True
else:
settings.TEST_CODE_COVERAGE_CHECKER.collector.pause()
template_coverage_collection = False
url_coverage_collection = False
class CoverageReporter(Reporter):
def report(self):
self.find_file_reporters(None)
@ -325,6 +344,9 @@ class IetfTestRunner(DiscoverRunner):
super(IetfTestRunner, self).__init__(**kwargs)
def setup_test_environment(self, **kwargs):
global template_coverage_collection
global url_coverage_collection
ietf.utils.mail.test_mode = True
ietf.utils.mail.SMTP_ADDR['ip4'] = '127.0.0.1'
ietf.utils.mail.SMTP_ADDR['port'] = 2025
@ -359,7 +381,10 @@ class IetfTestRunner(DiscoverRunner):
}
settings.TEMPLATE_LOADERS = ('ietf.utils.test_runner.template_coverage_loader',) + settings.TEMPLATE_LOADERS
template_coverage_collection = True
settings.MIDDLEWARE_CLASSES = ('ietf.utils.test_runner.RecordUrlsMiddleware',) + settings.MIDDLEWARE_CLASSES
url_coverage_collection = True
self.code_coverage_checker = settings.TEST_CODE_COVERAGE_CHECKER
if not self.code_coverage_checker._started:

View file

@ -295,8 +295,3 @@ class TestCase(django.test.TestCase):
self.assertTrue(resp['Content-Type'].startswith('text/html'))
self.assertValidHTML(resp.content)
def set_coverage_checking(flag=True):
if flag:
settings.TEST_CODE_COVERAGE_CHECKER.collector.resume()
else:
settings.TEST_CODE_COVERAGE_CHECKER.collector.pause()