|
10 | 10 |
|
11 | 11 | import debug # pyflakes:ignore |
12 | 12 |
|
| 13 | +from ietf.doc.factories import DocumentFactory |
13 | 14 | from ietf.doc.models import ( Document, DocAlias, DocReminder, DocumentAuthor, DocEvent, |
14 | 15 | ConsensusDocEvent, LastCallDocEvent, RelatedDocument, State, TelechatDocEvent, |
15 | 16 | WriteupDocEvent, BallotDocEvent, DocRelationshipName) |
16 | 17 | from ietf.doc.utils import get_tags_for_stream_id |
17 | 18 | from ietf.name.models import StreamName, IntendedStdLevelName, DocTagName |
| 19 | +from ietf.group.factories import GroupFactory |
18 | 20 | from ietf.group.models import Group |
| 21 | +from ietf.person.factories import PersonFactory |
19 | 22 | from ietf.person.models import Person, Email |
20 | 23 | from ietf.meeting.models import Meeting, MeetingTypeName |
21 | 24 | from ietf.iesg.models import TelechatDate |
@@ -1197,6 +1200,48 @@ def test_adopt_document(self): |
1197 | 1200 |
|
1198 | 1201 | self.assertFalse(mars.list_email in draft.notify) |
1199 | 1202 |
|
| 1203 | + def test_right_state_choices_offered(self): |
| 1204 | + draft = DocumentFactory() |
| 1205 | + wg = GroupFactory(type_id='wg',state_id='active') |
| 1206 | + rg = GroupFactory(type_id='rg',state_id='active') |
| 1207 | + person = PersonFactory(user__username='person') |
| 1208 | + |
| 1209 | + self.client.login(username='person',password='person+password') |
| 1210 | + url = urlreverse('ietf.doc.views_draft.adopt_draft', kwargs=dict(name=draft.name)) |
| 1211 | + |
| 1212 | + person.role_set.create(name_id='chair',group=wg,email=person.email()) |
| 1213 | + r = self.client.get(url) |
| 1214 | + q = PyQuery(r.content) |
| 1215 | + self.assertTrue('(IETF)' in q('#id_newstate option').text()) |
| 1216 | + self.assertFalse('(IRTF)' in q('#id_newstate option').text()) |
| 1217 | + |
| 1218 | + person.role_set.create(name_id='chair',group=Group.objects.get(acronym='irtf'),email=person.email()) |
| 1219 | + r = self.client.get(url) |
| 1220 | + q = PyQuery(r.content) |
| 1221 | + self.assertTrue('(IETF)' in q('#id_newstate option').text()) |
| 1222 | + self.assertTrue('(IRTF)' in q('#id_newstate option').text()) |
| 1223 | + |
| 1224 | + person.role_set.filter(group__acronym='irtf').delete() |
| 1225 | + person.role_set.create(name_id='chair',group=rg,email=person.email()) |
| 1226 | + r = self.client.get(url) |
| 1227 | + q = PyQuery(r.content) |
| 1228 | + self.assertTrue('(IETF)' in q('#id_newstate option').text()) |
| 1229 | + self.assertTrue('(IRTF)' in q('#id_newstate option').text()) |
| 1230 | + |
| 1231 | + person.role_set.filter(group=wg).delete() |
| 1232 | + r = self.client.get(url) |
| 1233 | + q = PyQuery(r.content) |
| 1234 | + self.assertFalse('(IETF)' in q('#id_newstate option').text()) |
| 1235 | + self.assertTrue('(IRTF)' in q('#id_newstate option').text()) |
| 1236 | + |
| 1237 | + person.role_set.all().delete() |
| 1238 | + person.role_set.create(name_id='secr',group=Group.objects.get(acronym='secretariat'),email=person.email()) |
| 1239 | + r = self.client.get(url) |
| 1240 | + q = PyQuery(r.content) |
| 1241 | + self.assertTrue('(IETF)' in q('#id_newstate option').text()) |
| 1242 | + self.assertTrue('(IRTF)' in q('#id_newstate option').text()) |
| 1243 | + |
| 1244 | + |
1200 | 1245 | class ChangeStreamStateTests(TestCase): |
1201 | 1246 | def test_set_tags(self): |
1202 | 1247 | draft = make_test_data() |
|
0 commit comments