From b86bd842783c058b09ecb1050a9a61b8daaeb8c9 Mon Sep 17 00:00:00 2001
From: Robert Sparks <rjsparks@nostrum.com>
Date: Wed, 13 Jun 2018 22:09:01 +0000
Subject: [PATCH] Improvements to tests after converting to factories suggested
 by studying coverage_changes. Commit ready to merge.  - Legacy-Id: 15248

---
 ietf/doc/tests.py         | 10 +++++++--
 ietf/doc/tests_ballot.py  |  8 +++++---
 ietf/doc/tests_charter.py |  2 +-
 ietf/utils/test_data.py   | 43 ---------------------------------------
 4 files changed, 14 insertions(+), 49 deletions(-)

diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py
index 271b587be..e4443a191 100644
--- a/ietf/doc/tests.py
+++ b/ietf/doc/tests.py
@@ -26,6 +26,7 @@ from ietf.doc.factories import DocumentFactory, DocEventFactory, CharterFactory,
 from ietf.doc.utils import create_ballot_if_not_open
 from ietf.group.models import Group
 from ietf.group.factories import GroupFactory
+from ietf.ipr.factories import HolderIprDisclosureFactory
 from ietf.meeting.models import Meeting, Session, SessionPresentation
 from ietf.meeting.factories import MeetingFactory, SessionFactory
 from ietf.name.models import SessionStatusName
@@ -252,10 +253,12 @@ class SearchTests(TestCase):
         
     def test_indexes(self):
         draft = IndividualDraftFactory()
+        rfc = WgRfcFactory()
 
         r = self.client.get(urlreverse('ietf.doc.views_search.index_all_drafts'))
         self.assertEqual(r.status_code, 200)
-        self.assertTrue(draft.name in unicontent(r))
+        self.assertIn(draft.name, unicontent(r))
+        self.assertIn(rfc.canonical_name().upper(),unicontent(r))
 
         r = self.client.get(urlreverse('ietf.doc.views_search.index_active_drafts'))
         self.assertEqual(r.status_code, 200)
@@ -476,6 +479,9 @@ Man                    Expires September 22, 2015               [Page 3]
 
     def test_document_draft(self):
         draft = WgDraftFactory(name='draft-ietf-mars-test',rev='01')
+        HolderIprDisclosureFactory(docs=[draft])
+        replaced = IndividualDraftFactory()
+        draft.relateddocument_set.create(relationship_id='replaces',source=draft,target=replaced.docalias_set.first())
 
         # these tests aren't testing all attributes yet, feel free to
         # expand them
@@ -532,7 +538,7 @@ Man                    Expires September 22, 2015               [Page 3]
         q = PyQuery(r.content)
         self.assertEqual(len(q('.rfcmarkup pre')), 4)
         self.assertEqual(len(q('.rfcmarkup span.h1')), 2)
-        self.assertEqual(len(q('.rfcmarkup a[href]')), 29)
+        self.assertEqual(len(q('.rfcmarkup a[href]')), 31)
 
         r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=draft.name, rev=draft.rev)))
         self.assertEqual(r.status_code, 200)
diff --git a/ietf/doc/tests_ballot.py b/ietf/doc/tests_ballot.py
index b25f73772..0ccac786f 100644
--- a/ietf/doc/tests_ballot.py
+++ b/ietf/doc/tests_ballot.py
@@ -12,6 +12,7 @@ from ietf.doc.factories import DocumentFactory, IndividualDraftFactory, Individu
 from ietf.doc.utils import create_ballot_if_not_open
 from ietf.group.models import Group, Role
 from ietf.group.factories import GroupFactory, RoleFactory
+from ietf.ipr.factories import HolderIprDisclosureFactory
 from ietf.name.models import BallotPositionName
 from ietf.iesg.models import TelechatDate
 from ietf.person.models import Person, PersonalApiKey
@@ -435,7 +436,7 @@ class BallotWriteupsTests(TestCase):
 
     def test_edit_approval_text(self):
         ad = Person.objects.get(user__username="ad")
-        draft = WgDraftFactory(ad=ad,states=[('draft','active'),('draft-iesg','iesg-eva')],intended_std_level_id='ps')
+        draft = WgDraftFactory(ad=ad,states=[('draft','active'),('draft-iesg','iesg-eva')],intended_std_level_id='ps',group__parent=Group.objects.get(acronym='farfut'))
         url = urlreverse('ietf.doc.views_ballot.ballot_approvaltext', kwargs=dict(name=draft.name))
         login_testing_unauthorized(self, "secretary", url)
 
@@ -674,8 +675,8 @@ class ApproveBallotTests(TestCase):
 class MakeLastCallTests(TestCase):
     def test_make_last_call(self):
         ad = Person.objects.get(user__username="ad")
-        draft = WgDraftFactory(name='draft-ietf-mars-test',group__acronym='mars',ad=ad)
-        draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="lc-req"))
+        draft = WgDraftFactory(name='draft-ietf-mars-test',group__acronym='mars',ad=ad,states=[('draft-iesg','lc-req')],intended_std_level_id='ps')
+        HolderIprDisclosureFactory(docs=[draft])
 
         url = urlreverse('ietf.doc.views_ballot.make_last_call', kwargs=dict(name=draft.name))
         login_testing_unauthorized(self, "secretary", url)
@@ -707,6 +708,7 @@ class MakeLastCallTests(TestCase):
         self.assertTrue("ietf-announce@" in outbox[-2]['To'])
         for prefix in ['draft-ietf-mars-test','mars-chairs','aread']:
             self.assertTrue(prefix+"@" in outbox[-2]['Cc'])
+        self.assertIn("The following IPR Declarations",outbox[-2].get_payload())
 
         self.assertTrue("Last Call" in outbox[-1]['Subject'])
         self.assertTrue("drafts-lastcall@icann.org" in outbox[-1]['To'])
diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py
index 50fdf0261..130590c39 100644
--- a/ietf/doc/tests_charter.py
+++ b/ietf/doc/tests_charter.py
@@ -589,7 +589,7 @@ class EditCharterTests(TestCase):
     def test_approve(self):
         area = GroupFactory(type_id='area')
         RoleFactory(name_id='ad',group=area,person=Person.objects.get(user__username='ad'))
-        charter = CharterFactory(group__acronym='ames',group__list_email='ames-wg@ietf.org',group__parent=area)
+        charter = CharterFactory(group__acronym='ames',group__list_email='ames-wg@ietf.org',group__parent=area,group__state_id='bof')
         group = charter.group
         RoleFactory(name_id='chair',group=group,person__name=u'Ames Man',person__user__email='ameschairman@ietf.org')
         RoleFactory(name_id='secr',group=group,person__name=u'Secretary',person__user__email='amessecretary@ietf.org')
diff --git a/ietf/utils/test_data.py b/ietf/utils/test_data.py
index 072e3ffd5..51b816b41 100644
--- a/ietf/utils/test_data.py
+++ b/ietf/utils/test_data.py
@@ -413,49 +413,6 @@ def make_test_data():
 
     return draft
 
-def make_downref_test_data():
-    # Add an additional draft that has a downref
-    ad = Person.objects.get(user__username="ad")
-    mars_wg = Group.objects.get(acronym="mars")
-
-    draft = Document.objects.create(
-        name="draft-ietf-mars-approved-document",
-        time=datetime.datetime.now(),
-        type_id="draft",
-        title="Martian Network Frameworks",
-        stream_id="ietf",
-        group=mars_wg,
-        abstract="Frameworks for building Martian networks.",
-        rev="01",
-        pages=2,
-        intended_std_level_id="ps",
-        ad=ad,
-        expires=datetime.datetime.now() + datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE),
-        notify="aliens@example.mars",
-        note="",
-        )
-
-    draft.set_state(State.objects.get(used=True, type="draft", slug="active"))
-    draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="rfcqueue"))
-    draft.set_state(State.objects.get(used=True, type="draft-stream-%s" % draft.stream_id, slug="wg-doc"))
-
-    DocAlias.objects.create(
-        document=draft,
-        name=draft.name,
-        )
-
-    DocumentAuthor.objects.create(
-        document=draft,
-        person=Person.objects.get(email__address="aread@ietf.org"),
-        email=Email.objects.get(address="aread@ietf.org"),
-        country="US",
-        affiliation="",
-        order=1
-        )
-
-    rfc_doc_alias = DocAlias.objects.get(name='rfc9998')
-    RelatedDocument.objects.create(source=draft, target=rfc_doc_alias, relationship_id='downref-approval')
-
     return draft
 
 def make_review_data(doc):