fix: Label draft change log with rfc number (#6659)

* fix: Label draft change log with rfc num

* test: Update test
This commit is contained in:
Jennifer Richards 2023-11-17 15:49:34 -04:00 committed by GitHub
parent b215867cb1
commit 4ac1153d7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 7 deletions

View file

@ -79,12 +79,12 @@ if len(errata_data) < ietf.sync.rfceditor.MIN_ERRATA_RESULTS:
sys.exit(1)
new_rfcs = []
for changes, doc, rfc_published in ietf.sync.rfceditor.update_docs_from_rfc_index(index_data, errata_data, skip_older_than_date=skip_date):
for rfc_number, changes, doc, rfc_published in ietf.sync.rfceditor.update_docs_from_rfc_index(index_data, errata_data, skip_older_than_date=skip_date):
if rfc_published:
new_rfcs.append(doc)
for c in changes:
log("RFC%s, %s: %s" % (doc.rfc_number, doc.name, c))
log("RFC%s, %s: %s" % (rfc_number, doc.name, c))
sys.exit(0)

View file

@ -336,10 +336,11 @@ def parse_index(response):
def update_docs_from_rfc_index(
index_data, errata_data, skip_older_than_date=None
) -> Iterator[tuple[list[str], Document, bool]]:
) -> Iterator[tuple[int, list[str], Document, bool]]:
"""Given parsed data from the RFC Editor index, update the documents in the database
Yields a list of change descriptions for each document, if any.
Returns an iterator that yields (rfc_number, change_list, doc, rfc_published) for the
RFC document and, if applicable, the I-D that it came from.
The skip_older_than_date is a bare date, not a datetime.
"""
@ -553,7 +554,7 @@ def update_docs_from_rfc_index(
)
)
draft.save_with_history(draft_events)
yield draft_changes, draft, False # yield changes to the draft
yield rfc_number, draft_changes, draft, False # yield changes to the draft
# check attributes
verbed = "set" if created_rfc else "changed"
@ -757,7 +758,7 @@ def update_docs_from_rfc_index(
)
)
doc.save_with_history(rfc_events)
yield rfc_changes, doc, rfc_published # yield changes to the RFC
yield rfc_number, rfc_changes, doc, rfc_published # yield changes to the RFC
if first_sync_creating_subseries:
# First - create the known subseries documents that have ghosted.

View file

@ -350,8 +350,16 @@ class RFCSyncTests(TestCase):
changes = []
with mock.patch("ietf.sync.rfceditor.log") as mock_log:
for _, d, rfc_published in rfceditor.update_docs_from_rfc_index(data, errata, today - datetime.timedelta(days=30)):
for rfc_number, _, d, rfc_published in rfceditor.update_docs_from_rfc_index(data, errata, today - datetime.timedelta(days=30)):
changes.append({"doc_pk": d.pk, "rfc_published": rfc_published}) # we ignore the actual change list
self.assertEqual(rfc_number, 1234)
if rfc_published:
self.assertEqual(d.type_id, "rfc")
self.assertEqual(d.rfc_number, rfc_number)
else:
self.assertEqual(d.type_id, "draft")
self.assertIsNone(d.rfc_number)
self.assertFalse(mock_log.called, "No log messages expected")
draft_doc = Document.objects.get(name=draft_doc.name)