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
This commit is contained in:
parent
bb1ef1a447
commit
6fa181763b
ietf
|
@ -13,6 +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_data import make_test_data
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
|
||||
|
||||
|
@ -64,6 +65,12 @@ class StreamTests(TestCase):
|
|||
@skipIf(skip_dot_to_pdf, skip_message)
|
||||
class GroupDocDependencyGraphTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
set_coverage_checking(False)
|
||||
|
||||
def tearDown(self):
|
||||
set_coverage_checking(True)
|
||||
|
||||
def test_group_document_dependency_dotfile(self):
|
||||
make_test_data()
|
||||
for group in Group.objects.filter(Q(type="wg") | Q(type="rg")):
|
||||
|
|
|
@ -18,6 +18,7 @@ from ietf.person.models import Person, Email
|
|||
from ietf.group.models import Group, Role, RoleName
|
||||
from ietf.ietfauth.htpasswd import update_htpasswd_file
|
||||
from ietf.mailinglists.models import Subscribed
|
||||
from ietf.utils.decorators import skip_coverage
|
||||
|
||||
import ietf.ietfauth.views
|
||||
|
||||
|
@ -336,6 +337,7 @@ class IetfAuthTests(TestCase):
|
|||
self.assertTrue(self.username_in_htpasswd_file("foo"))
|
||||
|
||||
@skipIf(skip_htpasswd_command, skip_message)
|
||||
@skip_coverage
|
||||
def test_htpasswd_file_with_htpasswd_binary(self):
|
||||
# make sure we test both Python and call-out to binary
|
||||
settings.USE_PYTHON_HTDIGEST = False
|
||||
|
|
|
@ -10,6 +10,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 import settings
|
||||
|
||||
skip_selenium = getattr(settings,'SKIP_SELENIUM',None)
|
||||
|
@ -33,10 +34,14 @@ def condition_data():
|
|||
@skipIf(skip_selenium, skip_message)
|
||||
class ScheduleEditTests(StaticLiveServerTestCase):
|
||||
def setUp(self):
|
||||
set_coverage_checking(False)
|
||||
condition_data()
|
||||
self.driver = webdriver.PhantomJS(service_log_path=settings.TEST_GHOSTDRIVER_LOG_PATH)
|
||||
self.driver.set_window_size(1024,768)
|
||||
|
||||
def tearDown(self):
|
||||
set_coverage_checking(True)
|
||||
|
||||
def debugSnapshot(self,filename='debug_this.png'):
|
||||
self.driver.execute_script("document.body.bgColor = 'white';")
|
||||
self.driver.save_screenshot(filename)
|
||||
|
@ -75,10 +80,14 @@ class ScheduleEditTests(StaticLiveServerTestCase):
|
|||
@skipIf(skip_selenium, skip_message)
|
||||
class InterimRequestTests(StaticLiveServerTestCase):
|
||||
def setUp(self):
|
||||
set_coverage_checking(False)
|
||||
condition_data()
|
||||
self.driver = webdriver.PhantomJS(service_log_path=settings.TEST_GHOSTDRIVER_LOG_PATH)
|
||||
self.driver.set_window_size(1024,768)
|
||||
|
||||
def tearDown(self):
|
||||
set_coverage_checking(True)
|
||||
|
||||
def absreverse(self,*args,**kwargs):
|
||||
return '%s%s'%(self.live_server_url,urlreverse(*args,**kwargs))
|
||||
|
||||
|
|
|
@ -28,14 +28,6 @@ class DisableMigrations(object):
|
|||
|
||||
MIGRATION_MODULES = DisableMigrations()
|
||||
|
||||
# Set the SKIP_* variables to True in order to disable tests which won't
|
||||
# normally run on developer's laptop, in order to not create
|
||||
# release-coverage.json data which sets people up for test suite failures on a
|
||||
# clean checkout
|
||||
|
||||
SKIP_DOT_TO_PDF = True
|
||||
SKIP_SELENIUM = True
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'NAME': 'test.db',
|
||||
|
|
16
ietf/utils/decorators.py
Normal file
16
ietf/utils/decorators.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Copyright The IETF Trust 2016, All Rights Reserved
|
||||
|
||||
from decorator import decorator
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
@decorator
|
||||
def skip_coverage(f, *args, **kwargs):
|
||||
if settings.TEST_CODE_COVERAGE_CHECKER:
|
||||
checker = settings.TEST_CODE_COVERAGE_CHECKER
|
||||
checker.collector.pause()
|
||||
result = f(*args, **kwargs)
|
||||
checker.collector.resume()
|
||||
return result
|
||||
else:
|
||||
return f(*args, **kwargs)
|
|
@ -222,7 +222,7 @@ class CoverageTest(TestCase):
|
|||
# only running some tests, then of course the coverage is going to be low.
|
||||
if self.runner.run_full_test_suite:
|
||||
# Permit 0.02% variation in results -- otherwise small code changes become a pain
|
||||
fudge_factor = 0.0002 # 0.02% -- a small change in the last digit we show
|
||||
fudge_factor = 0.00005 # 0.005% -- a small change, less than the last digit we show
|
||||
self.assertGreaterEqual(test_coverage, master_coverage - fudge_factor,
|
||||
msg = "The %s coverage percentage is now lower (%.2f%%) than for version %s (%.2f%%)" %
|
||||
( test, test_coverage*100, latest_coverage_version, master_coverage*100, ))
|
||||
|
|
|
@ -295,3 +295,8 @@ 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()
|
||||
|
|
Loading…
Reference in a new issue