fix: untangle stats and iana sync

This commit is contained in:
Robert Sparks 2023-08-19 12:58:01 -05:00
parent 1ae0c0b838
commit 5489fea9f7
No known key found for this signature in database
GPG key ID: 6E2A6A5775F91318
2 changed files with 12 additions and 10 deletions

View file

@ -229,7 +229,7 @@ def document_stats(request, stats_type=None):
type="draft",
docevent__time__gte=from_time,
docevent__type__in=["published_rfc", "new_revision"],
).values_list("pk"))
).values_list("pk",flat=True))
document_filters &= Q(pk__in=docs_within_time_constraint)
@ -309,7 +309,7 @@ def document_stats(request, stats_type=None):
submission_types[doc_name] = file_types
doc_names_with_missing_types = {}
for doc_name, doc_type, rev in document_qs.values_list("name", "type_id" "rev"):
for doc_name, doc_type, rev in document_qs.values_list("name", "type_id", "rev"):
types = submission_types.get(doc_name)
if types:
for dot_ext in types.split(","):

View file

@ -30,19 +30,20 @@ from ietf.utils.timezone import date_today, RPC_TZINFO
class IANASyncTests(TestCase):
def test_protocol_page_sync(self):
draft = WgDraftFactory()
DocAlias.objects.create(name="rfc1234").docs.add(draft)
DocEvent.objects.create(doc=draft, rev=draft.rev, type="published_rfc", by=Person.objects.get(name="(System)"))
rfc = RfcFactory(rfc_number=1234)
draft.relateddocument_set.create(relationship_id="became_rfc", target = rfc)
DocEvent.objects.create(doc=rfc, rev="", type="published_rfc", by=Person.objects.get(name="(System)"))
rfc_names = iana.parse_protocol_page('<html><a href="/go/rfc1234/">RFC 1234</a></html>')
self.assertEqual(len(rfc_names), 1)
self.assertEqual(rfc_names[0], "rfc1234")
iana.update_rfc_log_from_protocol_page(rfc_names, timezone.now() - datetime.timedelta(days=1))
self.assertEqual(DocEvent.objects.filter(doc=draft, type="rfc_in_iana_registry").count(), 1)
self.assertEqual(DocEvent.objects.filter(doc=rfc, type="rfc_in_iana_registry").count(), 1)
# make sure it doesn't create duplicates
iana.update_rfc_log_from_protocol_page(rfc_names, timezone.now() - datetime.timedelta(days=1))
self.assertEqual(DocEvent.objects.filter(doc=draft, type="rfc_in_iana_registry").count(), 1)
self.assertEqual(DocEvent.objects.filter(doc=rfc, type="rfc_in_iana_registry").count(), 1)
def test_changes_sync(self):
draft = WgDraftFactory(ad=Person.objects.get(user__username='ad'))
@ -380,10 +381,11 @@ class RFCSyncTests(TestCase):
tag_slugs = rfc_doc.tags.values_list("slug", flat=True)
self.assertTrue("errata" in tag_slugs)
self.assertFalse("verified-errata" in tag_slugs)
self.assertTrue(DocAlias.objects.filter(name="rfc1234", docs=rfc_doc))
self.assertTrue(DocAlias.objects.filter(name="bcp1", docs=rfc_doc))
self.assertTrue(DocAlias.objects.filter(name="fyi1", docs=rfc_doc))
self.assertTrue(DocAlias.objects.filter(name="std1", docs=rfc_doc))
# TODO: adjust these when we have subseries document types
# self.assertTrue(DocAlias.objects.filter(name="rfc1234", docs=rfc_doc))
# self.assertTrue(DocAlias.objects.filter(name="bcp1", docs=rfc_doc))
# self.assertTrue(DocAlias.objects.filter(name="fyi1", docs=rfc_doc))
# self.assertTrue(DocAlias.objects.filter(name="std1", docs=rfc_doc))
self.assertTrue(RelatedDocument.objects.filter(source=rfc_doc, target__name="rfc123", relationship="updates").exists())
self.assertTrue(RelatedDocument.objects.filter(source=draft_doc, target=rfc_doc, relationship="became_rfc").exists())
self.assertEqual(rfc_doc.title, "A Testing RFC")