More factorization of ietf.doc.tests. Commit ready for merge.
- Legacy-Id: 15204
This commit is contained in:
parent
4a4a152c9a
commit
4e7743c009
|
@ -1,6 +1,7 @@
|
|||
import factory
|
||||
|
||||
from ietf.doc.models import Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor
|
||||
from ietf.group.models import Group
|
||||
|
||||
def draft_name_generator(type_id,group,n):
|
||||
return '%s-%s-%s-%s%d'%(
|
||||
|
@ -59,12 +60,15 @@ class BaseDocumentFactory(factory.DjangoModelFactory):
|
|||
class DocumentFactory(BaseDocumentFactory):
|
||||
|
||||
type_id = 'draft'
|
||||
# TODO : If more than one document is created in a test with this factory,
|
||||
# and group isn't explicitly specified, this will violate the assumption
|
||||
# that there is only one group of type 'individ'
|
||||
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
|
||||
|
||||
class CharterFactory(BaseDocumentFactory):
|
||||
|
||||
type_id = 'charter'
|
||||
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
|
||||
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='wg')
|
||||
|
||||
@factory.post_generation
|
||||
def set_group_charter_document(obj, create, extracted, **kwargs):
|
||||
|
@ -73,6 +77,28 @@ class CharterFactory(BaseDocumentFactory):
|
|||
obj.group.charter = extracted or obj
|
||||
obj.group.save()
|
||||
|
||||
class ConflictReviewFactory(BaseDocumentFactory):
|
||||
type_id='conflrev'
|
||||
|
||||
@factory.post_generation
|
||||
def review_of(obj, create, extracted, **kwargs):
|
||||
if not create:
|
||||
return
|
||||
if extracted:
|
||||
obj.relateddocument_set.create(relationship_id='conflrev',target=extracted.docalias_set.first())
|
||||
else:
|
||||
obj.relateddocument_set.create(relationship_id='conflrev',target=DocumentFactory(type_id='draft',group=Group.objects.get(type_id='individ')).docalias_set.first())
|
||||
|
||||
@factory.post_generation
|
||||
def states(obj, create, extracted, **kwargs):
|
||||
if not create:
|
||||
return
|
||||
if extracted:
|
||||
for state in extracted:
|
||||
obj.set_state(state)
|
||||
else:
|
||||
obj.set_state(State.objects.get(type_id='conflrev',slug='iesgeval'))
|
||||
|
||||
class DocAliasFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = DocAlias
|
||||
|
|
|
@ -22,12 +22,12 @@ import debug # pyflakes:ignore
|
|||
|
||||
from ietf.doc.models import ( Document, DocAlias, DocRelationshipName, RelatedDocument, State,
|
||||
DocEvent, BallotPositionDocEvent, LastCallDocEvent, WriteupDocEvent, NewRevisionDocEvent )
|
||||
from ietf.doc.factories import DocumentFactory, DocEventFactory, CharterFactory
|
||||
from ietf.doc.factories import DocumentFactory, DocEventFactory, CharterFactory, ConflictReviewFactory
|
||||
from ietf.doc.utils import create_ballot_if_not_open
|
||||
from ietf.group.models import Group
|
||||
from ietf.group.factories import GroupFactory
|
||||
from ietf.meeting.models import Meeting, Session, SessionPresentation
|
||||
from ietf.meeting.factories import SessionFactory
|
||||
from ietf.meeting.factories import MeetingFactory, SessionFactory
|
||||
from ietf.meeting.test_data import make_meeting_test_data
|
||||
from ietf.name.models import SessionStatusName
|
||||
from ietf.person.models import Person
|
||||
|
@ -480,7 +480,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
shutil.rmtree(self.id_dir)
|
||||
|
||||
def test_document_draft(self):
|
||||
draft = make_test_data()
|
||||
draft = DocumentFactory(name='draft-ietf-mars-test',rev='01')
|
||||
|
||||
# these tests aren't testing all attributes yet, feel free to
|
||||
# expand them
|
||||
|
@ -541,7 +541,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]')), 30)
|
||||
self.assertEqual(len(q('.rfcmarkup a[href]')), 29)
|
||||
|
||||
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)
|
||||
|
@ -556,16 +556,15 @@ Man Expires September 22, 2015 [Page 3]
|
|||
# replaced draft
|
||||
draft.set_state(State.objects.get(type="draft", slug="repl"))
|
||||
|
||||
replacement = Document.objects.create(
|
||||
replacement = DocumentFactory(
|
||||
name="draft-ietf-replacement",
|
||||
time=datetime.datetime.now(),
|
||||
type_id="draft",
|
||||
title="Replacement Draft",
|
||||
stream_id=draft.stream_id, group_id=draft.group_id, abstract=draft.stream, rev=draft.rev,
|
||||
stream_id=draft.stream_id, group_id=draft.group_id, abstract=draft.abstract,stream=draft.stream, rev=draft.rev,
|
||||
pages=draft.pages, intended_std_level_id=draft.intended_std_level_id,
|
||||
shepherd_id=draft.shepherd_id, ad_id=draft.ad_id, expires=draft.expires,
|
||||
notify=draft.notify, note=draft.note)
|
||||
DocAlias.objects.create(name=replacement.name, document=replacement)
|
||||
rel = RelatedDocument.objects.create(source=replacement,
|
||||
target=draft.docalias_set.get(name__startswith="draft"),
|
||||
relationship_id="replaces")
|
||||
|
@ -596,14 +595,12 @@ Man Expires September 22, 2015 [Page 3]
|
|||
self.assertTrue(draft.name in unicontent(r))
|
||||
|
||||
# naked RFC
|
||||
rfc = Document.objects.create(
|
||||
rfc = DocumentFactory(
|
||||
name="rfc1234567",
|
||||
type_id="draft",
|
||||
title="RFC without a Draft",
|
||||
stream_id="ise",
|
||||
group=Group.objects.get(type="individ"),
|
||||
std_level_id="ps")
|
||||
DocAlias.objects.create(name=rfc.name, document=rfc)
|
||||
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=rfc.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("RFC 1234567" in unicontent(r))
|
||||
|
@ -648,29 +645,29 @@ Man Expires September 22, 2015 [Page 3]
|
|||
|
||||
class DocTestCase(TestCase):
|
||||
def test_document_charter(self):
|
||||
make_test_data()
|
||||
|
||||
CharterFactory(name='charter-ietf-mars')
|
||||
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name="charter-ietf-mars")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
def test_document_conflict_review(self):
|
||||
make_test_data()
|
||||
ConflictReviewFactory(name='conflict-review-imaginary-irtf-submission')
|
||||
|
||||
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name='conflict-review-imaginary-irtf-submission')))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
def test_document_material(self):
|
||||
draft = make_test_data()
|
||||
|
||||
doc = Document.objects.create(
|
||||
MeetingFactory(type_id='ietf',number='42')
|
||||
mars = GroupFactory(type_id='wg',acronym='mars')
|
||||
marschairman = PersonFactory(user__username='marschairman')
|
||||
mars.role_set.create(name_id='chair',person=marschairman,email=marschairman.email())
|
||||
doc = DocumentFactory(
|
||||
name="slides-testteam-test-slides",
|
||||
rev="00",
|
||||
title="Test Slides",
|
||||
group=draft.group,
|
||||
group__acronym='testteam',
|
||||
type_id="slides"
|
||||
)
|
||||
doc.set_state(State.objects.get(type="slides", slug="active"))
|
||||
DocAlias.objects.create(name=doc.name, document=doc)
|
||||
|
||||
session = Session.objects.create(
|
||||
name = "session-42-mars-1",
|
||||
|
|
Loading…
Reference in a new issue