forked from ietf-tools/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests_subseries.py
More file actions
49 lines (41 loc) · 2.09 KB
/
Copy pathtests_subseries.py
File metadata and controls
49 lines (41 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright The IETF Trust 2023, All Rights Reserved
# -*- coding: utf-8 -*-
import debug # pyflakes:ignore
from pyquery import PyQuery
from django.urls import reverse as urlreverse
from ietf.doc.factories import SubseriesFactory, RfcFactory
from ietf.doc.models import Document
from ietf.utils.test_utils import TestCase
class SubseriesTests(TestCase):
def test_index_and_view(self):
types = ["bcp", "std", "fyi"]
for type_id in types:
doc = SubseriesFactory(type_id=type_id)
self.assertEqual(len(doc.contains()), 1)
rfc = doc.contains()[0]
# Index
url = urlreverse("ietf.doc.views_search.index_subseries", kwargs=dict(type_id=type_id))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertIsNotNone(q(f"#{doc.name}"))
self.assertIn(f"RFC {rfc.name[3:]}",q(f"#{doc.name}").text())
# Subseries document view
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertIn(f"{doc.type_id.upper()} {doc.name[3:]} consists of:",q("h2").text())
self.assertIn(f"RFC {rfc.name[3:]}", q("div.row p a").text())
# RFC view
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=rfc.name))
r = self.client.get(url)
q = PyQuery(r.content)
self.assertIn(f"RFC {rfc.name[3:]} also known as {type_id.upper()} {doc.name[3:]}", q("h1").text())
bcp = Document.objects.filter(type_id="bcp").last()
bcp.relateddocument_set.create(relationship_id="contains", target=RfcFactory())
for rfc in bcp.contains():
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=rfc.name))
r = self.client.get(url)
q = PyQuery(r.content)
self.assertIn(f"RFC {rfc.name[3:]} part of BCP {bcp.name[3:]}", q("h1").text())