Skip to content

Commit a36cf95

Browse files
committed
Refactored the code to skip coverage testing a bit, and added skipping of template and url coverage.
- Legacy-Id: 11472
1 parent 75fd4d2 commit a36cf95

5 files changed

Lines changed: 33 additions & 12 deletions

File tree

ietf/group/tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from ietf.group.models import Role, Group
1414
from ietf.group.utils import get_group_role_emails, get_child_group_role_emails, get_group_ad_emails
1515
from ietf.group.factories import GroupFactory
16-
from ietf.utils.test_utils import set_coverage_checking
16+
from ietf.utils.test_runner import set_coverage_checking
1717
from ietf.utils.test_data import make_test_data
1818
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
1919

ietf/meeting/tests_js.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from ietf.group import colors
1414
from ietf.meeting.test_data import make_meeting_test_data
1515
from ietf.meeting.models import SchedTimeSessAssignment
16-
from ietf.utils.test_utils import set_coverage_checking
16+
from ietf.utils.test_runner import set_coverage_checking
1717
from ietf.utils.pipe import pipe
1818
from ietf import settings
1919

ietf/utils/decorators.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44

55
from django.conf import settings
66

7+
from test_runner import set_coverage_checking
8+
79
@decorator
810
def skip_coverage(f, *args, **kwargs):
911
if settings.TEST_CODE_COVERAGE_CHECKER:
10-
checker = settings.TEST_CODE_COVERAGE_CHECKER
11-
checker.collector.pause()
12+
set_coverage_checking(False)
1213
result = f(*args, **kwargs)
13-
checker.collector.resume()
14+
set_coverage_checking(True)
1415
return result
1516
else:
1617
return f(*args, **kwargs)

ietf/utils/test_runner.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@
7070
old_destroy = None
7171
old_create = None
7272

73+
template_coverage_collection = None
74+
url_coverage_collection = None
75+
76+
7377
def safe_create_1(self, verbosity, *args, **kwargs):
7478
global test_database_name, old_create
7579
print " Creating test database..."
@@ -103,13 +107,16 @@ def safe_destroy_0_1(*args, **kwargs):
103107
return old_destroy(*args, **kwargs)
104108

105109
def template_coverage_loader(template_name, dirs):
106-
loaded_templates.add(str(template_name))
110+
if template_coverage_collection == True:
111+
loaded_templates.add(str(template_name))
107112
raise TemplateDoesNotExist
108113
template_coverage_loader.is_usable = True
109114

110115
class RecordUrlsMiddleware(object):
111116
def process_request(self, request):
112-
visited_urls.add(request.path)
117+
global url_coverage_collection
118+
if url_coverage_collection == True:
119+
visited_urls.add(request.path)
113120

114121
def get_url_patterns(module, apps=None):
115122
def include(name):
@@ -175,6 +182,18 @@ def save_test_results(failures, test_labels):
175182
tfile.close()
176183

177184

185+
def set_coverage_checking(flag=True):
186+
global template_coverage_collection
187+
global url_coverage_collection
188+
if flag:
189+
settings.TEST_CODE_COVERAGE_CHECKER.collector.resume()
190+
template_coverage_collection = True
191+
url_coverage_collection = True
192+
else:
193+
settings.TEST_CODE_COVERAGE_CHECKER.collector.pause()
194+
template_coverage_collection = False
195+
url_coverage_collection = False
196+
178197
class CoverageReporter(Reporter):
179198
def report(self):
180199
self.find_file_reporters(None)
@@ -325,6 +344,9 @@ def __init__(self, skip_coverage=False, save_version_coverage=None, **kwargs):
325344
super(IetfTestRunner, self).__init__(**kwargs)
326345

327346
def setup_test_environment(self, **kwargs):
347+
global template_coverage_collection
348+
global url_coverage_collection
349+
328350
ietf.utils.mail.test_mode = True
329351
ietf.utils.mail.SMTP_ADDR['ip4'] = '127.0.0.1'
330352
ietf.utils.mail.SMTP_ADDR['port'] = 2025
@@ -359,7 +381,10 @@ def setup_test_environment(self, **kwargs):
359381
}
360382

361383
settings.TEMPLATE_LOADERS = ('ietf.utils.test_runner.template_coverage_loader',) + settings.TEMPLATE_LOADERS
384+
template_coverage_collection = True
385+
362386
settings.MIDDLEWARE_CLASSES = ('ietf.utils.test_runner.RecordUrlsMiddleware',) + settings.MIDDLEWARE_CLASSES
387+
url_coverage_collection = True
363388

364389
self.code_coverage_checker = settings.TEST_CODE_COVERAGE_CHECKER
365390
if not self.code_coverage_checker._started:

ietf/utils/test_utils.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,3 @@ def assertValidHTMLResponse(self, resp):
295295
self.assertTrue(resp['Content-Type'].startswith('text/html'))
296296
self.assertValidHTML(resp.content)
297297

298-
def set_coverage_checking(flag=True):
299-
if flag:
300-
settings.TEST_CODE_COVERAGE_CHECKER.collector.resume()
301-
else:
302-
settings.TEST_CODE_COVERAGE_CHECKER.collector.pause()

0 commit comments

Comments
 (0)