Added a test for IPR edit.

- Legacy-Id: 14951
This commit is contained in:
Henrik Levkowetz 2018-03-27 17:55:11 +00:00
parent e830f0f976
commit 9547646f81
2 changed files with 55 additions and 6 deletions

View file

@ -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')

View file

@ -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)