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, n,
) )
class DocumentFactory(factory.DjangoModelFactory): class BaseDocumentFactory(factory.DjangoModelFactory):
class Meta: class Meta:
model = Document model = Document
type_id = 'draft'
title = factory.Faker('sentence',nb_words=6) title = factory.Faker('sentence',nb_words=6)
rev = '00' rev = '00'
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
std_level_id = None std_level_id = None
intended_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._has_an_event_so_saving_is_allowed = True
obj.save() 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 DocAliasFactory(factory.DjangoModelFactory):
class Meta: class Meta:

View file

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