Additional tweaks to submission yang testing and the test runner

- Legacy-Id: 15870
This commit is contained in:
Henrik Levkowetz 2019-01-07 13:38:44 +00:00
parent 2634e2143a
commit 0cc7f73d58
3 changed files with 9 additions and 15 deletions

View file

@ -9,7 +9,6 @@ import shutil
import tempfile
import StringIO
from collections import deque
from django.conf import settings
import debug # pyflakes:ignore
@ -19,8 +18,6 @@ from ietf.utils.models import VersionInfo
from ietf.utils.pipe import pipe
from ietf.utils.test_runner import set_coverage_checking
cmd_pipe_results = deque([], 4)
class DraftSubmissionChecker():
name = ""
@ -74,8 +71,6 @@ class DraftIdnitsChecker(object):
Error and warning list items are tuples:
(line_number, line_text, message)
"""
global cmd_pipe_results
items = []
errors = 0
warnings = 0
@ -85,7 +80,6 @@ class DraftIdnitsChecker(object):
cmd = "%s %s %s" % (settings.IDSUBMIT_IDNITS_BINARY, self.options, path)
code, out, err = pipe(cmd)
cmd_pipe_results.append((code, out, err))
if code != 0 or out == "":
message = "idnits error: %s:\n Error %s: %s" %( cmd, code, err)
log(message)
@ -210,7 +204,6 @@ class DraftYangChecker(object):
cmd_version = VersionInfo.objects.get(command=command).version
cmd = cmd_template.format(libs=modpath, model=path)
code, out, err = pipe(cmd)
cmd_pipe_results.append((code, out, err))
if code > 0 or len(err.strip()) > 0 :
error_lines = err.splitlines()
assertion('len(error_lines) > 0')
@ -242,10 +235,9 @@ class DraftYangChecker(object):
cmd = cmd_template.format(model=path, rfclib=settings.SUBMIT_YANG_RFC_MODEL_DIR, tmplib=workdir,
draftlib=settings.SUBMIT_YANG_DRAFT_MODEL_DIR, ianalib=settings.SUBMIT_YANG_IANA_MODEL_DIR, )
code, out, err = pipe(cmd)
cmd_pipe_results.append((code, out, err))
if code > 0 or len(err.strip()) > 0:
error_lines = err.splitlines()
for line in error_lines:
err_lines = err.splitlines()
for line in err_lines:
if line.strip():
try:
if 'err : ' in line:

View file

@ -31,8 +31,6 @@ from ietf.message.models import Message
from ietf.name.models import FormalLanguageName
from ietf.person.models import Person
from ietf.person.factories import UserFactory, PersonFactory
from ietf.submit.checkers import cmd_pipe_results
from ietf.submit.models import Submission, Preapproval
from ietf.submit.mail import add_submission_email, process_response_email
from ietf.utils.mail import outbox, empty_outbox
@ -1039,7 +1037,6 @@ class SubmitTests(TestCase):
q = PyQuery(r.content)
#
self.assertContains(r, u'The yang validation returned 1 error')
self.assertIn('illegal keyword', cmd_pipe_results[-2][2])
#
m = q('#yang-validation-message').text()
for command in ['xym', 'pyang', 'yanglint']:

View file

@ -80,6 +80,7 @@ old_destroy = None
old_create = None
template_coverage_collection = None
code_coverage_collection = None
url_coverage_collection = None
@ -223,15 +224,18 @@ def save_test_results(failures, test_labels):
def set_coverage_checking(flag=True):
global template_coverage_collection
global code_coverage_collection
global url_coverage_collection
if settings.SERVER_MODE == 'test':
if flag:
settings.TEST_CODE_COVERAGE_CHECKER.collector.resume()
template_coverage_collection = True
code_coverage_collection = True
url_coverage_collection = True
else:
settings.TEST_CODE_COVERAGE_CHECKER.collector.pause()
template_coverage_collection = False
code_coverage_collection = False
url_coverage_collection = False
class CoverageReporter(Reporter):
@ -521,7 +525,6 @@ class IetfTestRunner(DiscoverRunner):
settings.TEMPLATES[0]['OPTIONS']['loaders'] = ('ietf.utils.test_runner.TemplateCoverageLoader',) + settings.TEMPLATES[0]['OPTIONS']['loaders']
settings.MIDDLEWARE = ('ietf.utils.test_runner.record_urls_middleware',) + tuple(settings.MIDDLEWARE)
url_coverage_collection = True
self.code_coverage_checker = settings.TEST_CODE_COVERAGE_CHECKER
if not self.code_coverage_checker._started:
@ -628,7 +631,7 @@ class IetfTestRunner(DiscoverRunner):
return test_apps, test_paths
def run_tests(self, test_labels, extra_tests=[], **kwargs):
global old_destroy, old_create, test_database_name, template_coverage_collection
global old_destroy, old_create, test_database_name, template_coverage_collection, code_coverage_collection, url_coverage_collection
from django.db import connection
from ietf.doc.tests import TemplateTagTest
@ -652,6 +655,8 @@ class IetfTestRunner(DiscoverRunner):
if self.check_coverage:
template_coverage_collection = True
code_coverage_collection = True
url_coverage_collection = True
extra_tests += [
CoverageTest(test_runner=self, methodName='interleaved_migrations_test'),
CoverageTest(test_runner=self, methodName='url_coverage_test'),