Skip to content

Commit c0eb9e3

Browse files
committed
Merged in [14899] from rjsparks@nostrum.com:
Cleaner charter factory simplifies test code. - Legacy-Id: 14914 Note: SVN reference [14899] has been migrated to Git commit 8026f86
2 parents 56b22f3 + 8026f86 commit c0eb9e3

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

ietf/doc/factories.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@ def draft_name_generator(type_id,group,n):
1111
n,
1212
)
1313

14-
class DocumentFactory(factory.DjangoModelFactory):
14+
class BaseDocumentFactory(factory.DjangoModelFactory):
1515
class Meta:
1616
model = Document
1717

18-
type_id = 'draft'
1918
title = factory.Faker('sentence',nb_words=6)
2019
rev = '00'
21-
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
2220
std_level_id = None
2321
intended_std_level_id = None
2422

@@ -58,6 +56,22 @@ def _after_postgeneration(cls, obj, create, results=None):
5856
obj._has_an_event_so_saving_is_allowed = True
5957
obj.save()
6058

59+
class DocumentFactory(BaseDocumentFactory):
60+
61+
type_id = 'draft'
62+
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
63+
64+
class CharterFactory(BaseDocumentFactory):
65+
66+
type_id = 'charter'
67+
group = factory.SubFactory('ietf.group.factories.GroupFactory',type_id='individ')
68+
69+
@factory.post_generation
70+
def set_group_charter_document(obj, create, extracted, **kwargs):
71+
if not create:
72+
return
73+
obj.group.charter = extracted or obj
74+
obj.group.save()
6175

6276
class DocAliasFactory(factory.DjangoModelFactory):
6377
class Meta:

ietf/doc/tests_charter.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
import debug # pyflakes:ignore
1212

13-
from ietf.doc.factories import DocumentFactory
13+
from ietf.doc.factories import DocumentFactory, CharterFactory
1414
from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent,
1515
TelechatDocEvent, WriteupDocEvent )
1616
from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text,
1717
charter_name_for_group )
1818
from ietf.doc.utils import close_open_ballots
19-
from ietf.group.factories import RoleFactory, GroupFactory
19+
from ietf.group.factories import RoleFactory
2020
from ietf.group.models import Group, GroupMilestone
2121
from ietf.iesg.models import TelechatDate
2222
from ietf.person.models import Person
@@ -157,11 +157,7 @@ def find_event(t):
157157
self.assertTrue("A new charter" in outbox[-3].get_payload())
158158

159159
def test_abandon_bof(self):
160-
group = GroupFactory(type_id='ietf',state_id='bof')
161-
charter = DocumentFactory(type_id='charter',group=group)
162-
# This points to some more work to do in the factories
163-
group.charter = charter
164-
group.save()
160+
charter = CharterFactory(group__state_id='bof',group__type_id='wg')
165161
url = urlreverse('ietf.doc.views_charter.change_state',kwargs={'name':charter.name,'option':'abandon'})
166162
login_testing_unauthorized(self, "secretary", url)
167163
response=self.client.get(url)
@@ -173,11 +169,7 @@ def test_abandon_bof(self):
173169
self.assertTrue('Testing Abandoning' in charter.docevent_set.filter(type='added_comment').first().desc)
174170

175171
def test_change_title(self):
176-
group = GroupFactory(type_id='ietf')
177-
charter = DocumentFactory(type_id='charter',group=group)
178-
# This points to some more work to do in the factories
179-
group.charter = charter
180-
group.save()
172+
charter = CharterFactory(group__type_id='wg')
181173
url = urlreverse('ietf.doc.views_charter.change_title',kwargs={'name':charter.name})
182174
login_testing_unauthorized(self, "secretary", url)
183175
response=self.client.get(url)

0 commit comments

Comments
 (0)