fix: Only POST to rfceditor in production (#7241)

* fix: Only POST to rfceditor in production

* test: Test server mode checking
This commit is contained in:
Jennifer Richards 2024-03-21 12:43:10 +10:00 committed by GitHub
parent 79416cfa0a
commit cf21b8f236
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 0 deletions

View file

@ -802,6 +802,10 @@ def post_approved_draft(url, name):
the data from the Datatracker and start processing it. Returns the data from the Datatracker and start processing it. Returns
response and error (empty string if no error).""" response and error (empty string if no error)."""
if settings.SERVER_MODE != "production":
log(f"In production, would have posted RFC-Editor notification of approved I-D '{name}' to '{url}'")
return "", ""
# HTTP basic auth # HTTP basic auth
username = "dtracksync" username = "dtracksync"
password = settings.RFC_EDITOR_SYNC_PASSWORD password = settings.RFC_EDITOR_SYNC_PASSWORD

View file

@ -597,6 +597,29 @@ class RFCSyncTests(TestCase):
auth48_docurl = draft.documenturl_set.filter(tag_id='auth48').first() auth48_docurl = draft.documenturl_set.filter(tag_id='auth48').first()
self.assertIsNone(auth48_docurl) self.assertIsNone(auth48_docurl)
def test_post_approved_draft_in_production_only(self):
self.requests_mock.post("https://rfceditor.example.com/", status_code=200, text="OK")
# be careful playing with SERVER_MODE!
with override_settings(SERVER_MODE="test"):
self.assertEqual(
rfceditor.post_approved_draft("https://rfceditor.example.com/", "some-draft"),
("", "")
)
self.assertFalse(self.requests_mock.called)
with override_settings(SERVER_MODE="development"):
self.assertEqual(
rfceditor.post_approved_draft("https://rfceditor.example.com/", "some-draft"),
("", "")
)
self.assertFalse(self.requests_mock.called)
with override_settings(SERVER_MODE="production"):
self.assertEqual(
rfceditor.post_approved_draft("https://rfceditor.example.com/", "some-draft"),
("", "")
)
self.assertTrue(self.requests_mock.called)
class DiscrepanciesTests(TestCase): class DiscrepanciesTests(TestCase):
def test_discrepancies(self): def test_discrepancies(self):
@ -636,6 +659,7 @@ class DiscrepanciesTests(TestCase):
r = self.client.get(urlreverse("ietf.sync.views.discrepancies")) r = self.client.get(urlreverse("ietf.sync.views.discrepancies"))
self.assertContains(r, doc.name) self.assertContains(r, doc.name)
class RFCEditorUndoTests(TestCase): class RFCEditorUndoTests(TestCase):
def test_rfceditor_undo(self): def test_rfceditor_undo(self):
draft = WgDraftFactory() draft = WgDraftFactory()