|
24 | 24 | from ietf.submit.models import Submission, Preapproval |
25 | 25 | from ietf.submit.mail import add_submission_email, process_response_email |
26 | 26 | from ietf.utils.mail import outbox, empty_outbox |
| 27 | +from ietf.utils.models import VersionInfo |
27 | 28 | from ietf.utils.test_data import make_test_data |
28 | 29 | from ietf.utils.test_utils import login_testing_unauthorized, unicontent, TestCase |
29 | 30 |
|
@@ -273,6 +274,15 @@ def submit_new_wg(self, formats): |
273 | 274 | self.assertTrue("ames-chairs@" in outbox[-1]["To"].lower()) |
274 | 275 | self.assertTrue("mars-chairs@" in outbox[-1]["To"].lower()) |
275 | 276 |
|
| 277 | + # fetch the document page |
| 278 | + url = urlreverse('ietf.doc.views_doc.document_main', kwargs={'name':name}) |
| 279 | + r = self.client.get(url) |
| 280 | + self.assertContains(r, name) |
| 281 | + self.assertContains(r, 'Active Internet-Draft') |
| 282 | + self.assertContains(r, 'mars WG') |
| 283 | + self.assertContains(r, 'Yang Validation') |
| 284 | + self.assertContains(r, 'WG Document') |
| 285 | + |
276 | 286 | def test_submit_new_wg_txt(self): |
277 | 287 | self.submit_new_wg(["txt"]) |
278 | 288 |
|
@@ -950,6 +960,38 @@ def test_submit_nonascii_name(self): |
950 | 960 |
|
951 | 961 | self.assertIn('The idnits check returned 1 error', m) |
952 | 962 |
|
| 963 | + def test_submit_invalid_yang(self): |
| 964 | + make_test_data() |
| 965 | + |
| 966 | + name = "draft-yang-testing-invalid" |
| 967 | + rev = "00" |
| 968 | + group = None |
| 969 | + |
| 970 | + # get |
| 971 | + url = urlreverse('ietf.submit.views.upload_submission') |
| 972 | + r = self.client.get(url) |
| 973 | + self.assertEqual(r.status_code, 200) |
| 974 | + q = PyQuery(r.content) |
| 975 | + |
| 976 | + # submit |
| 977 | + files = {"txt": submission_file(name, rev, group, "txt", "test_submission_invalid_yang.txt") } |
| 978 | + |
| 979 | + r = self.client.post(url, files) |
| 980 | + self.assertEqual(r.status_code, 302) |
| 981 | + status_url = r["Location"] |
| 982 | + r = self.client.get(status_url) |
| 983 | + q = PyQuery(r.content) |
| 984 | + # |
| 985 | + self.assertContains(r, u'The yang validation returned 1 error') |
| 986 | + # |
| 987 | + m = q('#yang-validation-message').text() |
| 988 | + for command in ['xym', 'pyang', 'yanglint']: |
| 989 | + version = VersionInfo.objects.get(command=command).version |
| 990 | + self.assertIn(version, m) |
| 991 | + self.assertIn("draft-yang-testing-invalid-00.txt", m) |
| 992 | + self.assertIn("error: syntax error: illegal keyword: ;", m) |
| 993 | + self.assertIn("No validation errors", m) |
| 994 | + |
953 | 995 |
|
954 | 996 | class ApprovalsTestCase(TestCase): |
955 | 997 | def test_approvals(self): |
|
0 commit comments