|
9 | 9 | from django.urls import reverse as urlreverse |
10 | 10 | from django.contrib.auth.models import User |
11 | 11 |
|
| 12 | +from django_webtest import WebTest |
| 13 | + |
12 | 14 | import debug # pyflakes:ignore |
13 | 15 |
|
14 | 16 | from ietf.community.models import CommunityList, SearchRule, EmailSubscription |
|
20 | 22 | from ietf.doc.models import State |
21 | 23 | from ietf.doc.utils import add_state_change_event |
22 | 24 | from ietf.person.models import Person, Email |
23 | | -from ietf.utils.test_utils import login_testing_unauthorized, TestCase |
| 25 | +from ietf.utils.test_utils import login_testing_unauthorized |
24 | 26 | from ietf.utils.mail import outbox |
25 | 27 | from ietf.doc.factories import WgDraftFactory |
26 | 28 | from ietf.group.factories import GroupFactory, RoleFactory |
27 | 29 | from ietf.person.factories import PersonFactory |
28 | 30 |
|
29 | | -class CommunityListTests(TestCase): |
| 31 | +class CommunityListTests(WebTest): |
30 | 32 | def test_rule_matching(self): |
31 | 33 | plain = PersonFactory(user__username='plain') |
32 | 34 | ad = Person.objects.get(user__username='ad') |
@@ -108,25 +110,29 @@ def test_manage_personal_list(self): |
108 | 110 | url = urlreverse(ietf.community.views.manage_list, kwargs={ "username": "plain" }) |
109 | 111 | login_testing_unauthorized(self, "plain", url) |
110 | 112 |
|
111 | | - r = self.client.get(url) |
112 | | - self.assertEqual(r.status_code, 200) |
| 113 | + page = self.app.get(url, user='plain') |
| 114 | + self.assertEqual(page.status_int, 200) |
113 | 115 |
|
114 | 116 | # add document |
115 | | - r = self.client.post(url, { "action": "add_documents", "documents": draft.pk }) |
116 | | - self.assertEqual(r.status_code, 302) |
| 117 | + self.assertIn('add_document', page.forms) |
| 118 | + form = page.forms['add_document'] |
| 119 | + form['documents']=draft.pk |
| 120 | + page = form.submit('action',value='add_documents') |
| 121 | + self.assertEqual(page.status_int, 302) |
117 | 122 | clist = CommunityList.objects.get(user__username="plain") |
118 | | - self.assertTrue(clist.added_docs.filter(pk=draft.pk)) |
| 123 | + self.assertTrue(clist.added_docs.filter(pk=draft.pk)) |
| 124 | + page = page.follow() |
119 | 125 |
|
120 | | - # document shows up on GET |
121 | | - r = self.client.get(url) |
122 | | - self.assertEqual(r.status_code, 200) |
123 | | - self.assertContains(r, draft.name) |
| 126 | + self.assertContains(page, draft.name) |
124 | 127 |
|
125 | 128 | # remove document |
126 | | - r = self.client.post(url, { "action": "remove_document", "document": draft.pk }) |
127 | | - self.assertEqual(r.status_code, 302) |
| 129 | + self.assertIn('remove_document_%s' % draft.pk, page.forms) |
| 130 | + form = page.forms['remove_document_%s' % draft.pk] |
| 131 | + page = form.submit('action',value='remove_document') |
| 132 | + self.assertEqual(page.status_int, 302) |
128 | 133 | clist = CommunityList.objects.get(user__username="plain") |
129 | 134 | self.assertTrue(not clist.added_docs.filter(pk=draft.pk)) |
| 135 | + page = page.follow() |
130 | 136 |
|
131 | 137 | # add rule |
132 | 138 | r = self.client.post(url, { |
|
0 commit comments