From 6ca10becd42b41ebb992024a89bdad316930f2f1 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 21 Dec 2023 15:40:32 -0600 Subject: [PATCH 1/2] fix: 404 requests for bibtex for none draft or rfc documents --- ietf/doc/tests.py | 9 ++++++++- ietf/doc/views_doc.py | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 8ae588ad1dc..7c998a0410d 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -40,7 +40,7 @@ ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory, IndividualRfcFactory, StateDocEventFactory, BallotPositionDocEventFactory, BallotDocEventFactory, DocumentAuthorFactory, NewRevisionDocEventFactory, - StatusChangeFactory, DocExtResourceFactory, RgDraftFactory) + StatusChangeFactory, DocExtResourceFactory, RgDraftFactory, BcpFactory) from ietf.doc.forms import NotifyForm from ietf.doc.fields import SearchableDocumentsField from ietf.doc.utils import create_ballot_if_not_open, uppercase_std_abbreviated_name @@ -1948,6 +1948,13 @@ def _parse_bibtex_response(self, response) -> dict: @override_settings(RFC_EDITOR_INFO_BASE_URL='https://www.rfc-editor.ietf.org/info/') def test_document_bibtex(self): + + for factory in [CharterFactory, BcpFactory]: # Should be extended to all other doc types + doc = factory() + url = urlreverse("ietf.doc.views_doc.document_bibtex", kwargs=dict(name=doc.name)) + r = self.client.get(url) + self.assertEqual(r.status_code, 404 + ) rfc = WgRfcFactory.create( time=datetime.datetime(2010, 10, 10, tzinfo=ZoneInfo(settings.TIME_ZONE)) ) diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index 665393c24e8..f91e25d7830 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -1262,6 +1262,9 @@ def document_bibtex(request, name, rev=None): doc = get_object_or_404(Document, name=name) + if doc.type_id not in ["rfc", "draft"]: + raise Http404() + doi = None draft_became_rfc = None replaced_by = None From 027e29597be256f81f95cdf2e852e8f340d4af14 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 21 Dec 2023 15:44:17 -0600 Subject: [PATCH 2/2] test: test rejecting the types with factories already being imported --- ietf/doc/tests.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 7c998a0410d..55bd48ef553 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -1949,12 +1949,11 @@ def _parse_bibtex_response(self, response) -> dict: @override_settings(RFC_EDITOR_INFO_BASE_URL='https://www.rfc-editor.ietf.org/info/') def test_document_bibtex(self): - for factory in [CharterFactory, BcpFactory]: # Should be extended to all other doc types + for factory in [CharterFactory, BcpFactory, StatusChangeFactory, ConflictReviewFactory]: # Should be extended to all other doc types doc = factory() url = urlreverse("ietf.doc.views_doc.document_bibtex", kwargs=dict(name=doc.name)) r = self.client.get(url) - self.assertEqual(r.status_code, 404 - ) + self.assertEqual(r.status_code, 404) rfc = WgRfcFactory.create( time=datetime.datetime(2010, 10, 10, tzinfo=ZoneInfo(settings.TIME_ZONE)) )