Added a bit of additional checking to test_submit_invalid_yang.

- Legacy-Id: 15869
This commit is contained in:
Henrik Levkowetz 2019-01-07 11:43:28 +00:00
parent 69c2e8443a
commit 2634e2143a
2 changed files with 11 additions and 0 deletions

View file

@ -9,6 +9,7 @@ import shutil
import tempfile
import StringIO
from collections import deque
from django.conf import settings
import debug # pyflakes:ignore
@ -18,6 +19,8 @@ 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 = ""
@ -71,6 +74,8 @@ class DraftIdnitsChecker(object):
Error and warning list items are tuples:
(line_number, line_text, message)
"""
global cmd_pipe_results
items = []
errors = 0
warnings = 0
@ -80,6 +85,7 @@ 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)
@ -204,6 +210,7 @@ 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')
@ -235,6 +242,7 @@ 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:

View file

@ -31,6 +31,8 @@ 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
@ -1037,6 +1039,7 @@ 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']: