From 9547646f81f02ae0343e01a317d505101cc45b66 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz <henrik@levkowetz.com> Date: Tue, 27 Mar 2018 17:55:11 +0000 Subject: [PATCH] Added a test for IPR edit. - Legacy-Id: 14951 --- ietf/ipr/tests.py | 56 +++++++++++++++++++++++++++++++++++++++++++---- ietf/ipr/views.py | 5 +++-- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/ietf/ipr/tests.py b/ietf/ipr/tests.py index 0f8004cfc..7eedc3f7f 100644 --- a/ietf/ipr/tests.py +++ b/ietf/ipr/tests.py @@ -13,11 +13,12 @@ from ietf.ipr.mail import (process_response_email, get_reply_to, get_update_subm from ietf.ipr.models import (IprDisclosureBase,GenericIprDisclosure,HolderIprDisclosure, ThirdPartyIprDisclosure,RelatedIpr) from ietf.ipr.utils import get_genitive, get_ipr_summary -from ietf.message.models import Message -from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent -from ietf.utils.test_data import make_test_data -from ietf.utils.mail import outbox, empty_outbox from ietf.mailtrigger.utils import gather_address_lists +from ietf.message.models import Message +from ietf.utils.mail import outbox, empty_outbox +from ietf.utils.test_data import make_test_data +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent +from ietf.utils.text import text_to_dict class IprTests(TestCase): @@ -380,6 +381,53 @@ class IprTests(TestCase): self.assertTrue('New IPR Submission' in outbox[0]['Subject']) self.assertTrue('ietf-ipr@' in outbox[0]['To']) + def test_edit(self): + draft = make_test_data() + original_ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') + + # get + url = urlreverse("ietf.ipr.views.edit", kwargs={ "id": original_ipr.id }) + login_testing_unauthorized(self, "secretary", url) + r = self.client.get(url) + self.assertContains(r, "Native Martians United") + + #url = urlreverse("ietf.ipr.views.new", kwargs={ "type": "specific" }) + # successful post + empty_outbox() + post_data = { + "has_patent_pending": False, + "holder_contact_email": "test@holder.com", + "holder_contact_info": "555-555-0100", + "holder_contact_name": "Test Holder", + "holder_legal_name": "Test Legal", + "ietfer_contact_info": "555-555-0101", + "ietfer_name": "Test Participant", + "iprdocrel_set-0-document": "%s" % draft.docalias_set.first().pk, + "iprdocrel_set-0-revisions": '00', + "iprdocrel_set-INITIAL_FORMS": 0, + "iprdocrel_set-TOTAL_FORMS": 1, + "licensing": "royalty-free", + "patent_date": "2000-01-01", + "patent_inventor": "A. Nonymous", + "patent_number": "SE12345678901", + "patent_title": "A method of transfering bits", + "submitter_email": "test@holder.com", + "submitter_name": "Test Holder", + "updates": "", + } + r = self.client.post(url, post_data, follow=True) + self.assertContains(r, "Disclosure modified") + + iprs = IprDisclosureBase.objects.filter(title__icontains=draft.name) + self.assertEqual(len(iprs), 1) + ipr = iprs[0].get_child() + self.assertEqual(ipr.holder_legal_name, "Test Legal") + patent_info_dict = dict( (k.replace('patent_','').capitalize(), v) for k, v in post_data.items() if k.startswith('patent_') ) + self.assertEqual(text_to_dict(ipr.patent_info), patent_info_dict) + self.assertEqual(ipr.state.slug, 'posted') + + self.assertEqual(len(outbox),0) + def test_update(self): draft = make_test_data() original_ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') diff --git a/ietf/ipr/views.py b/ietf/ipr/views.py index d2a5b4153..cc6cf35f2 100644 --- a/ietf/ipr/views.py +++ b/ietf/ipr/views.py @@ -308,14 +308,15 @@ def edit(request, id, updates=None): valid_formsets = draft_formset.is_valid() else: valid_formsets = True - + if form.is_valid() and valid_formsets: updates = form.cleaned_data.get('updates') disclosure = form.save(commit=False) disclosure.save() - + if type != 'generic': draft_formset = DraftFormset(request.POST, instance=disclosure) + draft_formset.clean() draft_formset.save() set_disclosure_title(disclosure)