Cleaner charter factory simplifies test code. Commit ready for merge.

- Legacy-Id: 14899
This commit is contained in:
Robert Sparks 2018-03-22 14:01:24 +00:00
parent f11907b6a0
commit 8026f86cd3
2 changed files with 21 additions and 15 deletions

View file

@ -11,14 +11,12 @@ def draft_name_generator(type_id,group,n):
n,
)
class DocumentFactory(factory.DjangoModelFactory):
class BaseDocumentFactory(factory.DjangoModelFactory):
class Meta:
model = Document
type_id = 'draft'
title = factory.Faker('sentence',nb_words=6)
rev = '00'
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
std_level_id = None
intended_std_level_id = None
@ -58,6 +56,22 @@ class DocumentFactory(factory.DjangoModelFactory):
obj._has_an_event_so_saving_is_allowed = True
obj.save()
class DocumentFactory(BaseDocumentFactory):
type_id = 'draft'
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')
@factory.post_generation
def set_group_charter_document(obj, create, extracted, **kwargs):
if not create:
return
obj.group.charter = extracted or obj
obj.group.save()
class DocAliasFactory(factory.DjangoModelFactory):
class Meta:

View file

@ -10,13 +10,13 @@ from django.urls import reverse as urlreverse
import debug # pyflakes:ignore
from ietf.doc.factories import DocumentFactory
from ietf.doc.factories import DocumentFactory, CharterFactory
from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent,
TelechatDocEvent, WriteupDocEvent )
from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text,
charter_name_for_group )
from ietf.doc.utils import close_open_ballots
from ietf.group.factories import RoleFactory, GroupFactory
from ietf.group.factories import RoleFactory
from ietf.group.models import Group, GroupMilestone
from ietf.iesg.models import TelechatDate
from ietf.person.models import Person
@ -157,11 +157,7 @@ class EditCharterTests(TestCase):
self.assertTrue("A new charter" in outbox[-3].get_payload())
def test_abandon_bof(self):
group = GroupFactory(type_id='ietf',state_id='bof')
charter = DocumentFactory(type_id='charter',group=group)
# This points to some more work to do in the factories
group.charter = charter
group.save()
charter = CharterFactory(group__state_id='bof',group__type_id='wg')
url = urlreverse('ietf.doc.views_charter.change_state',kwargs={'name':charter.name,'option':'abandon'})
login_testing_unauthorized(self, "secretary", url)
response=self.client.get(url)
@ -173,11 +169,7 @@ class EditCharterTests(TestCase):
self.assertTrue('Testing Abandoning' in charter.docevent_set.filter(type='added_comment').first().desc)
def test_change_title(self):
group = GroupFactory(type_id='ietf')
charter = DocumentFactory(type_id='charter',group=group)
# This points to some more work to do in the factories
group.charter = charter
group.save()
charter = CharterFactory(group__type_id='wg')
url = urlreverse('ietf.doc.views_charter.change_title',kwargs={'name':charter.name})
login_testing_unauthorized(self, "secretary", url)
response=self.client.get(url)