diff --git a/ietf/doc/factories.py b/ietf/doc/factories.py index 569e3e5d1..95ec11a65 100644 --- a/ietf/doc/factories.py +++ b/ietf/doc/factories.py @@ -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: diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py index a3047d1a2..ec838da5d 100644 --- a/ietf/doc/tests_charter.py +++ b/ietf/doc/tests_charter.py @@ -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)