Skip to content

Commit 6fa1817

Browse files
committed
Changed the code test coverage checking to never register coverage counts for tests that are sometimes skipped. Removed now unwanted skip settings from the releasetest settings.
- Legacy-Id: 11453
1 parent bb1ef1a commit 6fa1817

7 files changed

Lines changed: 40 additions & 9 deletions

File tree

ietf/group/tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +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
1617
from ietf.utils.test_data import make_test_data
1718
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
1819

@@ -64,6 +65,12 @@ def test_stream_edit(self):
6465
@skipIf(skip_dot_to_pdf, skip_message)
6566
class GroupDocDependencyGraphTests(TestCase):
6667

68+
def setUp(self):
69+
set_coverage_checking(False)
70+
71+
def tearDown(self):
72+
set_coverage_checking(True)
73+
6774
def test_group_document_dependency_dotfile(self):
6875
make_test_data()
6976
for group in Group.objects.filter(Q(type="wg") | Q(type="rg")):

ietf/ietfauth/tests.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from ietf.group.models import Group, Role, RoleName
1919
from ietf.ietfauth.htpasswd import update_htpasswd_file
2020
from ietf.mailinglists.models import Subscribed
21+
from ietf.utils.decorators import skip_coverage
2122

2223
import ietf.ietfauth.views
2324

@@ -336,6 +337,7 @@ def test_htpasswd_file_with_python(self):
336337
self.assertTrue(self.username_in_htpasswd_file("foo"))
337338

338339
@skipIf(skip_htpasswd_command, skip_message)
340+
@skip_coverage
339341
def test_htpasswd_file_with_htpasswd_binary(self):
340342
# make sure we test both Python and call-out to binary
341343
settings.USE_PYTHON_HTDIGEST = False

ietf/meeting/tests_js.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from ietf.group import colors
1111
from ietf.meeting.test_data import make_meeting_test_data
1212
from ietf.meeting.models import SchedTimeSessAssignment
13+
from ietf.utils.test_utils import set_coverage_checking
1314
from ietf import settings
1415

1516
skip_selenium = getattr(settings,'SKIP_SELENIUM',None)
@@ -33,10 +34,14 @@ def condition_data():
3334
@skipIf(skip_selenium, skip_message)
3435
class ScheduleEditTests(StaticLiveServerTestCase):
3536
def setUp(self):
37+
set_coverage_checking(False)
3638
condition_data()
3739
self.driver = webdriver.PhantomJS(service_log_path=settings.TEST_GHOSTDRIVER_LOG_PATH)
3840
self.driver.set_window_size(1024,768)
3941

42+
def tearDown(self):
43+
set_coverage_checking(True)
44+
4045
def debugSnapshot(self,filename='debug_this.png'):
4146
self.driver.execute_script("document.body.bgColor = 'white';")
4247
self.driver.save_screenshot(filename)
@@ -75,10 +80,14 @@ def testUnschedule(self):
7580
@skipIf(skip_selenium, skip_message)
7681
class InterimRequestTests(StaticLiveServerTestCase):
7782
def setUp(self):
83+
set_coverage_checking(False)
7884
condition_data()
7985
self.driver = webdriver.PhantomJS(service_log_path=settings.TEST_GHOSTDRIVER_LOG_PATH)
8086
self.driver.set_window_size(1024,768)
8187

88+
def tearDown(self):
89+
set_coverage_checking(True)
90+
8291
def absreverse(self,*args,**kwargs):
8392
return '%s%s'%(self.live_server_url,urlreverse(*args,**kwargs))
8493

ietf/settings_releasetest.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@ def __getitem__(self, item):
2828

2929
MIGRATION_MODULES = DisableMigrations()
3030

31-
# Set the SKIP_* variables to True in order to disable tests which won't
32-
# normally run on developer's laptop, in order to not create
33-
# release-coverage.json data which sets people up for test suite failures on a
34-
# clean checkout
35-
36-
SKIP_DOT_TO_PDF = True
37-
SKIP_SELENIUM = True
38-
3931
DATABASES = {
4032
'default': {
4133
'NAME': 'test.db',

ietf/utils/decorators.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright The IETF Trust 2016, All Rights Reserved
2+
3+
from decorator import decorator
4+
5+
from django.conf import settings
6+
7+
@decorator
8+
def skip_coverage(f, *args, **kwargs):
9+
if settings.TEST_CODE_COVERAGE_CHECKER:
10+
checker = settings.TEST_CODE_COVERAGE_CHECKER
11+
checker.collector.pause()
12+
result = f(*args, **kwargs)
13+
checker.collector.resume()
14+
return result
15+
else:
16+
return f(*args, **kwargs)

ietf/utils/test_runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def report_test_result(self, test):
222222
# only running some tests, then of course the coverage is going to be low.
223223
if self.runner.run_full_test_suite:
224224
# Permit 0.02% variation in results -- otherwise small code changes become a pain
225-
fudge_factor = 0.0002 # 0.02% -- a small change in the last digit we show
225+
fudge_factor = 0.00005 # 0.005% -- a small change, less than the last digit we show
226226
self.assertGreaterEqual(test_coverage, master_coverage - fudge_factor,
227227
msg = "The %s coverage percentage is now lower (%.2f%%) than for version %s (%.2f%%)" %
228228
( test, test_coverage*100, latest_coverage_version, master_coverage*100, ))

ietf/utils/test_utils.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,3 +295,8 @@ 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)