Fixed some name versus pk issues lingering after the Document/DocAlias primary key refactoring. Fixes issue #2729.
- Legacy-Id: 16288
This commit is contained in:
parent
7270d5f67a
commit
db12f2b948
|
@ -110,7 +110,7 @@ class CommunityListTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
# add document
|
||||
r = self.client.post(url, { "action": "add_documents", "documents": draft.name })
|
||||
r = self.client.post(url, { "action": "add_documents", "documents": draft.pk })
|
||||
self.assertEqual(r.status_code, 302)
|
||||
clist = CommunityList.objects.get(user__username="plain")
|
||||
self.assertTrue(clist.added_docs.filter(pk=draft.pk))
|
||||
|
|
|
@ -57,6 +57,7 @@ class SearchableDocumentsField(forms.CharField):
|
|||
value = str(value)
|
||||
if isinstance(value, basestring):
|
||||
items = self.parse_select2_value(value)
|
||||
# accept both names and pks here
|
||||
names = [ i for i in items if not i.isdigit() ]
|
||||
ids = [ i for i in items if i.isdigit() ]
|
||||
value = self.model.objects.filter(Q(name__in=names)|Q(id__in=ids))
|
||||
|
@ -82,14 +83,14 @@ class SearchableDocumentsField(forms.CharField):
|
|||
|
||||
def clean(self, value):
|
||||
value = super(SearchableDocumentsField, self).clean(value)
|
||||
names = self.parse_select2_value(value)
|
||||
pks = self.parse_select2_value(value)
|
||||
|
||||
objs = self.model.objects.filter(name__in=names)
|
||||
objs = self.model.objects.filter(pk__in=pks)
|
||||
|
||||
found_names = [str(o.name) for o in objs]
|
||||
failed_names = [x for x in names if x not in found_names]
|
||||
if failed_names:
|
||||
raise forms.ValidationError(u"Could not recognize the following documents: {names}. You can only input documents already registered in the Datatracker.".format(names=", ".join(failed_names)))
|
||||
found_pks = [ str(o.pk) for o in objs ]
|
||||
failed_pks = [ x for x in pks if x not in found_pks ]
|
||||
if failed_pks:
|
||||
raise forms.ValidationError(u"Could not recognize the following documents: {names}. You can only input documents already registered in the Datatracker.".format(names=", ".join(failed_pks)))
|
||||
|
||||
if self.max_entries != None and len(objs) > self.max_entries:
|
||||
raise forms.ValidationError(u"You can select at most %s entries." % self.max_entries)
|
||||
|
|
|
@ -9,7 +9,7 @@ from pyquery import PyQuery
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.doc.factories import WgDraftFactory, WgRfcFactory
|
||||
from ietf.doc.models import Document, DocAlias, RelatedDocument, State
|
||||
from ietf.doc.models import RelatedDocument, State
|
||||
from ietf.person.factories import PersonFactory
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, unicontent
|
||||
|
@ -18,10 +18,13 @@ class Downref(TestCase):
|
|||
|
||||
def setUp(self):
|
||||
PersonFactory(name='Plain Man',user__username='plain')
|
||||
WgDraftFactory(name='draft-ietf-mars-test')
|
||||
doc = WgDraftFactory(name='draft-ietf-mars-approved-document',states=[('draft-iesg','rfcqueue')])
|
||||
rfc = WgRfcFactory(alias2__name='rfc9998')
|
||||
RelatedDocument.objects.create(source=doc, target=rfc.docalias.get(name='rfc9998'),relationship_id='downref-approval')
|
||||
self.draft = WgDraftFactory(name='draft-ietf-mars-test')
|
||||
self.draftalias = self.draft.docalias.get(name='draft-ietf-mars-test')
|
||||
self.doc = WgDraftFactory(name='draft-ietf-mars-approved-document',states=[('draft-iesg','rfcqueue')])
|
||||
self.docalias = self.doc.docalias.get(name='draft-ietf-mars-approved-document')
|
||||
self.rfc = WgRfcFactory(alias2__name='rfc9998')
|
||||
self.rfcalias = self.rfc.docalias.get(name='rfc9998')
|
||||
RelatedDocument.objects.create(source=self.doc, target=self.rfcalias, relationship_id='downref-approval')
|
||||
|
||||
def test_downref_registry(self):
|
||||
url = urlreverse('ietf.doc.views_downref.downref_registry')
|
||||
|
@ -71,7 +74,7 @@ class Downref(TestCase):
|
|||
self.assertTrue('Save downref' in content)
|
||||
|
||||
# error - already in the downref registry
|
||||
r = self.client.post(url, dict(rfc='rfc9998', drafts=('draft-ietf-mars-approved-document', )))
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.doc.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('Downref is already in the registry' in content)
|
||||
|
@ -79,40 +82,38 @@ class Downref(TestCase):
|
|||
# error - source is not in an approved state
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
r = self.client.post(url, dict(rfc='rfc9998', drafts=('draft-ietf-mars-test', )))
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.draft.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('Draft is not yet approved' in content)
|
||||
|
||||
# error - the target is not a normative reference of the source
|
||||
draft = Document.objects.get(name="draft-ietf-mars-test")
|
||||
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="pub"))
|
||||
self.draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="pub"))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
r = self.client.post(url, dict(rfc='rfc9998', drafts=('draft-ietf-mars-test', )))
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.draft.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('There does not seem to be a normative reference to RFC' in content)
|
||||
self.assertTrue('Save downref anyway' in content)
|
||||
|
||||
# normal - approve the document so the downref is now okay
|
||||
rfc = DocAlias.objects.get(name="rfc9998")
|
||||
RelatedDocument.objects.create(source=draft, target=rfc, relationship_id='refnorm')
|
||||
draft_de_count_before = draft.docevent_set.count()
|
||||
rfc_de_count_before = rfc.document.docevent_set.count()
|
||||
RelatedDocument.objects.create(source=self.draft, target=self.rfcalias, relationship_id='refnorm')
|
||||
draft_de_count_before = self.draft.docevent_set.count()
|
||||
rfc_de_count_before = self.rfc.docevent_set.count()
|
||||
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
r = self.client.post(url, dict(rfc='rfc9998', drafts=('draft-ietf-mars-test', )))
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.draft.pk, )))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
newurl = urlreverse('ietf.doc.views_downref.downref_registry')
|
||||
r = self.client.get(newurl)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<a href="/doc/draft-ietf-mars-test' in content)
|
||||
self.assertTrue(RelatedDocument.objects.filter(source=draft, target=rfc, relationship_id='downref-approval'))
|
||||
self.assertEqual(draft.docevent_set.count(), draft_de_count_before + 1)
|
||||
self.assertEqual(rfc.document.docevent_set.count(), rfc_de_count_before + 1)
|
||||
self.assertTrue(RelatedDocument.objects.filter(source=self.draft, target=self.rfcalias, relationship_id='downref-approval'))
|
||||
self.assertEqual(self.draft.docevent_set.count(), draft_de_count_before + 1)
|
||||
self.assertEqual(self.rfc.docevent_set.count(), rfc_de_count_before + 1)
|
||||
|
||||
def test_downref_last_call(self):
|
||||
draft = WgDraftFactory(name='draft-ietf-mars-ready-for-lc-document',intended_std_level_id='ps',states=[('draft-iesg','iesg-eva')])
|
||||
|
|
|
@ -1574,7 +1574,7 @@ class ChangeReplacesTests(TestCase):
|
|||
RelatedDocument.objects.create(source=self.replacea, target=self.basea.docalias.first(),
|
||||
relationship=DocRelationshipName.objects.get(slug="possibly-replaces"))
|
||||
self.assertEqual(self.basea.get_state().slug,'active')
|
||||
r = self.client.post(url, dict(replaces=self.basea.name))
|
||||
r = self.client.post(url, dict(replaces=self.basea.pk))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
self.assertEqual(RelatedDocument.objects.filter(relationship__slug='replaces',source=self.replacea).count(),1)
|
||||
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
|
||||
|
@ -1588,7 +1588,7 @@ class ChangeReplacesTests(TestCase):
|
|||
# Post that says replaceboth replaces both base a and base b
|
||||
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=self.replaceboth.name))
|
||||
self.assertEqual(self.baseb.get_state().slug,'expired')
|
||||
r = self.client.post(url, dict(replaces=self.basea.name + "," + self.baseb.name))
|
||||
r = self.client.post(url, dict(replaces='%s,%s' % (self.basea.pk, self.baseb.pk)))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
|
||||
self.assertEqual(Document.objects.get(name='draft-test-base-b').get_state().slug,'repl')
|
||||
|
@ -1647,7 +1647,7 @@ class MoreReplacesTests(TestCase):
|
|||
new_doc = IndividualDraftFactory(stream_id=stream)
|
||||
|
||||
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=new_doc.name))
|
||||
r = self.client.post(url, dict(replaces=old_doc.name))
|
||||
r = self.client.post(url, dict(replaces=old_doc.pk))
|
||||
self.assertEqual(r.status_code,302)
|
||||
old_doc = Document.objects.get(name=old_doc.name)
|
||||
self.assertEqual(old_doc.get_state_slug('draft'),'repl')
|
||||
|
|
|
@ -45,6 +45,9 @@ def group_urlreverse_list(group, viewname):
|
|||
]
|
||||
|
||||
|
||||
def pklist(docs):
|
||||
return [ str(doc.pk) for doc in docs.all() ]
|
||||
|
||||
class GroupPagesTests(TestCase):
|
||||
def setUp(self):
|
||||
self.charter_dir = self.tempdir('charter')
|
||||
|
@ -811,7 +814,7 @@ class MilestoneTests(TestCase):
|
|||
|
||||
milestones_before = GroupMilestone.objects.count()
|
||||
events_before = group.groupevent_set.count()
|
||||
docs = Document.objects.filter(type="draft").values_list("name", flat=True)
|
||||
doc_pks = pklist(Document.objects.filter(type="draft"))
|
||||
|
||||
due = self.last_day_of_month(datetime.date.today() + datetime.timedelta(days=365))
|
||||
|
||||
|
@ -821,7 +824,7 @@ class MilestoneTests(TestCase):
|
|||
'm-1-desc': "", # no description
|
||||
'm-1-due': due.strftime("%B %Y"),
|
||||
'm-1-resolved': "",
|
||||
'm-1-docs': ",".join(docs),
|
||||
'm-1-docs': ",".join(doc_pks),
|
||||
'action': "save",
|
||||
})
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
@ -836,7 +839,7 @@ class MilestoneTests(TestCase):
|
|||
'm-1-desc': "Test 3",
|
||||
'm-1-due': due.strftime("%B %Y"),
|
||||
'm-1-resolved': "",
|
||||
'm-1-docs': ",".join(docs),
|
||||
'm-1-docs': ",".join(doc_pks),
|
||||
'action': "save",
|
||||
})
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
@ -847,7 +850,7 @@ class MilestoneTests(TestCase):
|
|||
self.assertEqual(m.state_id, "active")
|
||||
self.assertEqual(m.due, due)
|
||||
self.assertEqual(m.resolved, "")
|
||||
self.assertEqual(set(m.docs.values_list("name", flat=True)), set(docs))
|
||||
self.assertEqual(set(pklist(m.docs)), set(doc_pks))
|
||||
self.assertTrue("Added milestone" in m.milestonegroupevent_set.all()[0].desc)
|
||||
self.assertEqual(len(outbox),mailbox_before+2)
|
||||
self.assertFalse(any('Review Required' in x['Subject'] for x in outbox[-2:]))
|
||||
|
@ -913,7 +916,7 @@ class MilestoneTests(TestCase):
|
|||
'm1-desc': m1.desc,
|
||||
'm1-due': m1.due.strftime("%B %Y"),
|
||||
'm1-resolved': m1.resolved,
|
||||
'm1-docs': ",".join(m1.docs.values_list("name", flat=True)),
|
||||
'm1-docs': ",".join(pklist(m1.docs)),
|
||||
'm1-review': "accept",
|
||||
'action': "save",
|
||||
})
|
||||
|
@ -939,7 +942,7 @@ class MilestoneTests(TestCase):
|
|||
'm1-desc': m1.desc,
|
||||
'm1-due': m1.due.strftime("%B %Y"),
|
||||
'm1-resolved': "",
|
||||
'm1-docs': ",".join(m1.docs.values_list("name", flat=True)),
|
||||
'm1-docs': ",".join(pklist(m1.docs)),
|
||||
'm1-delete': "checked",
|
||||
'action': "save",
|
||||
})
|
||||
|
@ -959,7 +962,7 @@ class MilestoneTests(TestCase):
|
|||
|
||||
milestones_before = GroupMilestone.objects.count()
|
||||
events_before = group.groupevent_set.count()
|
||||
docs = Document.objects.filter(type="draft").values_list("name", flat=True)
|
||||
doc_pks = pklist(Document.objects.filter(type="draft"))
|
||||
|
||||
due = self.last_day_of_month(datetime.date.today() + datetime.timedelta(days=365))
|
||||
|
||||
|
@ -969,7 +972,7 @@ class MilestoneTests(TestCase):
|
|||
'm1-desc': "", # no description
|
||||
'm1-due': due.strftime("%B %Y"),
|
||||
'm1-resolved': "",
|
||||
'm1-docs': ",".join(docs),
|
||||
'm1-docs': ",".join(doc_pks),
|
||||
'action': "save",
|
||||
})
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
@ -987,7 +990,7 @@ class MilestoneTests(TestCase):
|
|||
'm1-due': due.strftime("%B %Y"),
|
||||
'm1-resolved': "Done",
|
||||
'm1-resolved_checkbox': "checked",
|
||||
'm1-docs': ",".join(docs),
|
||||
'm1-docs': ",".join(doc_pks),
|
||||
'action': "save",
|
||||
})
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
@ -998,7 +1001,7 @@ class MilestoneTests(TestCase):
|
|||
self.assertEqual(m.state_id, "active")
|
||||
self.assertEqual(m.due, due)
|
||||
self.assertEqual(m.resolved, "Done")
|
||||
self.assertEqual(set(m.docs.values_list("name", flat=True)), set(docs))
|
||||
self.assertEqual(set(pklist(m.docs)), set(doc_pks))
|
||||
self.assertTrue("Changed milestone" in m.milestonegroupevent_set.all()[0].desc)
|
||||
self.assertEqual(len(outbox), mailbox_before + 2)
|
||||
self.assertTrue("Milestones changed" in outbox[-2]["Subject"])
|
||||
|
|
|
@ -384,7 +384,7 @@ class IetfAuthTests(TestCase):
|
|||
# wish to review
|
||||
r = self.client.post(url, {
|
||||
"action": "add_wish",
|
||||
'doc': doc.name,
|
||||
'doc': doc.pk,
|
||||
"team": review_req.team_id,
|
||||
})
|
||||
self.assertEqual(r.status_code, 302)
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# Copyright The IETF Trust 2014-2019, All Rights Reserved
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
|
||||
from django.utils.html import escape
|
||||
|
@ -36,6 +39,12 @@ class SearchableIprDisclosuresField(forms.CharField):
|
|||
def parse_select2_value(self, value):
|
||||
return [x.strip() for x in value.split(",") if x.strip()]
|
||||
|
||||
def check_pks(self, pks):
|
||||
for pk in pks:
|
||||
if not pk.isdigit():
|
||||
raise forms.ValidationError("Unexpected value: %s" % pk)
|
||||
return pks
|
||||
|
||||
def prepare_value(self, value):
|
||||
if not value:
|
||||
value = ""
|
||||
|
@ -59,7 +68,7 @@ class SearchableIprDisclosuresField(forms.CharField):
|
|||
|
||||
def clean(self, value):
|
||||
value = super(SearchableIprDisclosuresField, self).clean(value)
|
||||
pks = self.parse_select2_value(value)
|
||||
pks = self.check_pks(self.parse_select2_value(value))
|
||||
|
||||
if not all([ key.isdigit() for key in pks ]):
|
||||
raise forms.ValidationError(u'You must enter IPR ID(s) as integers')
|
||||
|
|
|
@ -263,9 +263,9 @@ class IprTests(TestCase):
|
|||
"ietfer_contact_info": "555-555-0101",
|
||||
"iprdocrel_set-TOTAL_FORMS": 2,
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().name,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().name,
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().pk,
|
||||
"patent_number": "SE12345678901",
|
||||
"patent_inventor": "A. Nonymous",
|
||||
"patent_title": "A method of transfering bits",
|
||||
|
@ -306,9 +306,9 @@ class IprTests(TestCase):
|
|||
"ietfer_contact_info": "555-555-0101",
|
||||
"iprdocrel_set-TOTAL_FORMS": 2,
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().name,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().name,
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().pk,
|
||||
"patent_number": "SE12345678901",
|
||||
"patent_inventor": "A. Nonymous",
|
||||
"patent_title": "A method of transfering bits",
|
||||
|
@ -354,7 +354,7 @@ class IprTests(TestCase):
|
|||
"holder_legal_name": "Test Legal",
|
||||
"ietfer_contact_info": "555-555-0101",
|
||||
"ietfer_name": "Test Participant",
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().name,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-TOTAL_FORMS": 1,
|
||||
|
@ -403,9 +403,9 @@ class IprTests(TestCase):
|
|||
"ietfer_contact_info": "555-555-0101",
|
||||
"iprdocrel_set-TOTAL_FORMS": 2,
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().name,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().name,
|
||||
"iprdocrel_set-1-document": DocAlias.objects.filter(name__startswith="rfc").first().pk,
|
||||
"patent_number": "SE12345678901",
|
||||
"patent_inventor": "A. Nonymous",
|
||||
"patent_title": "A method of transfering bits",
|
||||
|
@ -441,7 +441,7 @@ class IprTests(TestCase):
|
|||
"holder_contact_email": "test@holder.com",
|
||||
"iprdocrel_set-TOTAL_FORMS": 1,
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().name,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"patent_number": "SE12345678901",
|
||||
"patent_inventor": "A. Nonymous",
|
||||
|
@ -630,7 +630,7 @@ Subject: test
|
|||
'iprdocrel_set-TOTAL_FORMS' : 1,
|
||||
'iprdocrel_set-INITIAL_FORMS' : 1,
|
||||
'iprdocrel_set-0-id': disclosure.pk,
|
||||
"iprdocrel_set-0-document": disclosure.docs.first().name,
|
||||
"iprdocrel_set-0-document": disclosure.docs.first().pk,
|
||||
"iprdocrel_set-0-revisions": disclosure.docs.first().document.rev,
|
||||
'holder_legal_name': disclosure.holder_legal_name,
|
||||
'patent_number': patent_dict['Number'],
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# Copyright The IETF Trust 2014-2019, All Rights Reserved
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
|
||||
from django.utils.html import escape
|
||||
|
@ -35,6 +38,12 @@ class SearchableLiaisonStatementsField(forms.CharField):
|
|||
def parse_select2_value(self, value):
|
||||
return [x.strip() for x in value.split(",") if x.strip()]
|
||||
|
||||
def check_pks(self, pks):
|
||||
for pk in pks:
|
||||
if not pk.isdigit():
|
||||
raise forms.ValidationError("Unexpected value: %s" % pk)
|
||||
return pks
|
||||
|
||||
def prepare_value(self, value):
|
||||
if not value:
|
||||
value = ""
|
||||
|
@ -56,7 +65,7 @@ class SearchableLiaisonStatementsField(forms.CharField):
|
|||
|
||||
def clean(self, value):
|
||||
value = super(SearchableLiaisonStatementsField, self).clean(value)
|
||||
pks = self.parse_select2_value(value)
|
||||
pks = self.check_pks(self.parse_select2_value(value))
|
||||
|
||||
objs = self.model.objects.filter(pk__in=pks)
|
||||
|
||||
|
|
|
@ -761,13 +761,13 @@ class SessionDetailsTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue(old_draft.name in unicontent(r))
|
||||
|
||||
r = self.client.post(url,dict(drafts=[new_draft.name,old_draft.name]))
|
||||
r = self.client.post(url,dict(drafts=[new_draft.pk, old_draft.pk]))
|
||||
self.assertTrue(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue("Already linked:" in q('form .alert-danger').text())
|
||||
|
||||
self.assertEqual(1,session.sessionpresentation_set.count())
|
||||
r = self.client.post(url,dict(drafts=[new_draft.name,]))
|
||||
r = self.client.post(url,dict(drafts=[new_draft.pk,]))
|
||||
self.assertTrue(r.status_code, 302)
|
||||
self.assertEqual(2,session.sessionpresentation_set.count())
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ class SubmitTests(TestCase):
|
|||
if r.status_code == 302:
|
||||
submission = Submission.objects.get(name=name)
|
||||
self.assertEqual(submission.submitter, email.utils.formataddr((submitter_name, submitter_email)))
|
||||
self.assertEqual(submission.replaces, ",".join(d.name for d in DocAlias.objects.filter(name__in=replaces.split(",") if replaces else [])))
|
||||
self.assertEqual(submission.replaces, ",".join(d.name for d in DocAlias.objects.filter(pk__in=replaces.split(",") if replaces else [])))
|
||||
|
||||
return r
|
||||
|
||||
|
@ -237,7 +237,7 @@ class SubmitTests(TestCase):
|
|||
mailbox_before = len(outbox)
|
||||
replaced_alias = draft.docalias.first()
|
||||
r = self.supply_extra_metadata(name, status_url, author.ascii, author.email().address.lower(),
|
||||
replaces=str(replaced_alias.name) + "," + str(sug_replaced_alias.name))
|
||||
replaces=str(replaced_alias.pk) + "," + str(sug_replaced_alias.pk))
|
||||
|
||||
self.assertEqual(r.status_code, 302)
|
||||
status_url = r["Location"]
|
||||
|
@ -594,16 +594,16 @@ class SubmitTests(TestCase):
|
|||
status_url, author = self.do_submission(name,rev)
|
||||
mailbox_before = len(outbox)
|
||||
replaced_alias = draft.docalias.first()
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.name))
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue('cannot replace itself' in unicontent(r))
|
||||
replaced_alias = DocAlias.objects.get(name='draft-ietf-random-thing')
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.name))
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue('cannot replace an RFC' in unicontent(r))
|
||||
replaced_alias.document.set_state(State.objects.get(type='draft-iesg',slug='approved'))
|
||||
replaced_alias.document.set_state(State.objects.get(type='draft',slug='active'))
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.name))
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue('approved by the IESG and cannot' in unicontent(r))
|
||||
r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces='')
|
||||
|
@ -737,7 +737,7 @@ class SubmitTests(TestCase):
|
|||
"edit-pages": "123",
|
||||
"submitter-name": "Some Random Test Person",
|
||||
"submitter-email": "random@example.com",
|
||||
"replaces": str(draft.docalias.first().name),
|
||||
"replaces": str(draft.docalias.first().pk),
|
||||
"edit-note": "no comments",
|
||||
"authors-0-name": "Person 1",
|
||||
"authors-0-email": "person1@example.com",
|
||||
|
@ -745,7 +745,6 @@ class SubmitTests(TestCase):
|
|||
"authors-1-email": "person2@example.com",
|
||||
"authors-2-name": "Person 3",
|
||||
"authors-2-email": "",
|
||||
|
||||
"authors-prefix": ["authors-", "authors-0", "authors-1", "authors-2"],
|
||||
})
|
||||
self.assertNoFormPostErrors(r, ".has-error,.alert-danger")
|
||||
|
|
Loading…
Reference in a new issue