From 6ccd96fb317b6219c8e2989606f436411d9ef1e7 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 23 Jul 2015 08:02:26 +0000 Subject: [PATCH] Ignore suggestions that a draft replaces itself. Commit ready for merge. - Legacy-Id: 9862 --- ietf/submit/tests.py | 21 +++++++++++++++++++++ ietf/submit/utils.py | 4 ++++ 2 files changed, 25 insertions(+) diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 0fb41a67b..f14dcdb6c 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -355,6 +355,27 @@ class SubmitTests(TestCase): self.assertEqual(new_revision.type, "new_revision") self.assertEqual(new_revision.by.name, "Submitter Name") + def test_submit_update_replacing_self(self): + draft = make_test_data() + name = draft.name + rev = '%02d'%(int(draft.rev)+1) + status_url = self.do_submission(name,rev) + mailbox_before = len(outbox) + replaced_alias = draft.docalias_set.first() + r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk)) + self.assertEqual(r.status_code, 302) + status_url = r["Location"] + r = self.client.get(status_url) + self.assertEqual(len(outbox), mailbox_before + 1) + confirm_url = self.extract_confirm_url(outbox[-1]) + mailbox_before = len(outbox) + r = self.client.post(confirm_url) + self.assertEqual(r.status_code, 302) + draft = Document.objects.get(docalias__name=name) + self.assertEqual(draft.rev, rev) + self.assertEqual(draft.relateddocument_set.filter(relationship_id='replaces').count(),0) + + def test_submit_new_wg_with_dash(self): make_test_data() diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index e1bbb9219..ed29ab062 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -253,6 +253,10 @@ def update_replaces_from_submission(request, submission, draft): rdoc = r.document + if rdoc == draft: + continue + + # TODO - I think the .exists() is in the wrong place below.... if (is_secretariat or (draft.group in is_chair_of and (rdoc.group.type_id == "individ" or rdoc.group in is_chair_of)) or (submitter_email and rdoc.authors.filter(address__iexact=submitter_email)).exists()):