Skip to content

Commit b4feab1

Browse files
committed
Add basic tests for the information pages in wginfo
- Legacy-Id: 6089
1 parent 459bbf3 commit b4feab1

2 files changed

Lines changed: 153 additions & 40 deletions

File tree

ietf/wginfo/tests.py

Lines changed: 153 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,36 +50,168 @@
5050
from ietf.person.models import *
5151
from ietf.wginfo.mails import *
5252

53-
54-
class WgInfoUrlTestCase(SimpleUrlTestCase):
55-
def testUrls(self):
56-
self.doTestUrls(__file__)
57-
58-
class WgFileTestCase(unittest.TestCase):
59-
def testFileExistence(self):
60-
fpath = os.path.join(settings.IETFWG_DESCRIPTIONS_PATH, "tls.desc.txt")
61-
if not os.path.exists(fpath):
62-
print "\nERROR: charter files not found in "+settings.IETFWG_DESCRIPTIONS_PATH
63-
print "They are needed for testing WG charter pages."
64-
print "Download them to a local directory with:"
65-
print "wget -nd -nc -np -r http://www.ietf.org/wg-descriptions/"
66-
print "And set IETFWG_DESCRIPTIONS_PATH in settings_local.py\n"
67-
68-
class WgOverviewTestCase(django.test.TestCase):
53+
class GroupPagesTests(django.test.TestCase):
6954
fixtures = ["names"]
7055

71-
def test_overview(self):
72-
make_test_data()
56+
def setUp(self):
57+
self.charter_dir = os.path.abspath("tmp-charter-dir")
58+
os.mkdir(self.charter_dir)
59+
settings.CHARTER_PATH = self.charter_dir
60+
61+
def tearDown(self):
62+
shutil.rmtree(self.charter_dir)
63+
64+
def test_active_wgs(self):
65+
draft = make_test_data()
66+
group = draft.group
67+
68+
url = urlreverse('ietf.wginfo.views.active_wgs')
69+
r = self.client.get(url)
70+
self.assertEquals(r.status_code, 200)
71+
self.assertTrue(group.parent.name in r.content)
72+
self.assertTrue(group.acronym in r.content)
73+
self.assertTrue(group.name in r.content)
74+
self.assertTrue(group.ad.plain_name() in r.content)
75+
76+
def test_wg_summaries(self):
77+
draft = make_test_data()
78+
group = draft.group
79+
80+
chair = Email.objects.filter(role__group=group, role__name="chair")[0]
81+
82+
with open(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev)), "w") as f:
83+
f.write("This is a charter.")
84+
85+
url = urlreverse('ietf.wginfo.views.wg_summary_area')
86+
r = self.client.get(url)
87+
self.assertEquals(r.status_code, 200)
88+
self.assertTrue(group.parent.name in r.content)
89+
self.assertTrue(group.acronym in r.content)
90+
self.assertTrue(group.name in r.content)
91+
self.assertTrue(chair.address in r.content)
92+
93+
url = urlreverse('ietf.wginfo.views.wg_summary_acronym')
94+
r = self.client.get(url)
95+
self.assertEquals(r.status_code, 200)
96+
self.assertTrue(group.acronym in r.content)
97+
self.assertTrue(group.name in r.content)
98+
self.assertTrue(chair.address in r.content)
99+
100+
url = urlreverse('ietf.wginfo.views.wg_charters')
101+
r = self.client.get(url)
102+
self.assertEquals(r.status_code, 200)
103+
self.assertTrue(group.acronym in r.content)
104+
self.assertTrue(group.name in r.content)
105+
self.assertTrue(group.ad.plain_name() in r.content)
106+
self.assertTrue(chair.address in r.content)
107+
self.assertTrue("This is a charter." in r.content)
108+
109+
url = urlreverse('ietf.wginfo.views.wg_charters_by_acronym')
110+
r = self.client.get(url)
111+
self.assertEquals(r.status_code, 200)
112+
self.assertTrue(group.acronym in r.content)
113+
self.assertTrue(group.name in r.content)
114+
self.assertTrue(group.ad.plain_name() in r.content)
115+
self.assertTrue(chair.address in r.content)
116+
self.assertTrue("This is a charter." in r.content)
73117

74-
wg = Group.objects.get(acronym="mars")
75-
wg.charter.set_state(State.objects.get(used=True, type="charter", slug="intrev"))
118+
def test_chartering_wgs(self):
119+
draft = make_test_data()
120+
group = draft.group
121+
group.charter.set_state(State.objects.get(used=True, type="charter", slug="intrev"))
76122

77123
url = urlreverse('ietf.wginfo.views.chartering_wgs')
78124
r = self.client.get(url)
79125
self.assertEquals(r.status_code, 200)
80126
q = PyQuery(r.content)
81-
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("mars")')), 1)
127+
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("%s")' % group.acronym)), 1)
128+
129+
def test_bofs(self):
130+
draft = make_test_data()
131+
group = draft.group
132+
group.state_id = "bof"
133+
group.save()
134+
135+
url = urlreverse('ietf.wginfo.views.bofs')
136+
r = self.client.get(url)
137+
self.assertEquals(r.status_code, 200)
138+
q = PyQuery(r.content)
139+
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("%s")' % group.acronym)), 1)
140+
141+
def test_group_documents(self):
142+
draft = make_test_data()
143+
group = draft.group
144+
145+
draft2 = Document.objects.create(
146+
name="draft-somebody-mars-test",
147+
time=datetime.datetime.now(),
148+
type_id="draft",
149+
title="Test By Somebody",
150+
stream_id="ietf",
151+
group=Group.objects.get(type="individ"),
152+
abstract="Abstract.",
153+
rev="01",
154+
pages=2,
155+
intended_std_level_id="ps",
156+
shepherd=None,
157+
ad=None,
158+
expires=datetime.datetime.now() + datetime.timedelta(days=10),
159+
notify="",
160+
note="",
161+
)
162+
163+
draft2.set_state(State.objects.get(used=True, type="draft", slug="active"))
164+
DocAlias.objects.create(
165+
document=draft2,
166+
name=draft2.name,
167+
)
168+
169+
url = urlreverse('ietf.wginfo.views.group_documents', kwargs=dict(acronym=group.acronym))
170+
r = self.client.get(url)
171+
self.assertEquals(r.status_code, 200)
172+
self.assertTrue(draft.name in r.content)
173+
self.assertTrue(group.name in r.content)
174+
self.assertTrue(group.acronym in r.content)
82175

176+
self.assertTrue(draft2.name in r.content)
177+
178+
def test_group_charter(self):
179+
draft = make_test_data()
180+
group = draft.group
181+
182+
with open(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev)), "w") as f:
183+
f.write("This is a charter.")
184+
185+
milestone = GroupMilestone.objects.create(
186+
group=group,
187+
state_id="active",
188+
desc="Get Work Done",
189+
due=datetime.date.today() + datetime.timedelta(days=100))
190+
milestone.docs.add(draft)
191+
192+
url = urlreverse('ietf.wginfo.views.group_charter', kwargs=dict(acronym=group.acronym))
193+
r = self.client.get(url)
194+
self.assertEquals(r.status_code, 200)
195+
self.assertTrue(group.name in r.content)
196+
self.assertTrue(group.acronym in r.content)
197+
self.assertTrue("This is a charter." in r.content)
198+
self.assertTrue(milestone.desc in r.content)
199+
self.assertTrue(milestone.docs.all()[0].name in r.content)
200+
201+
def test_history(self):
202+
draft = make_test_data()
203+
group = draft.group
204+
205+
e = GroupEvent.objects.create(
206+
group=group,
207+
desc="Something happened.",
208+
type="added_comment",
209+
by=Person.objects.get(name="(System)"))
210+
211+
url = urlreverse('ietf.wginfo.views.history', kwargs=dict(acronym=group.acronym))
212+
r = self.client.get(url)
213+
self.assertEquals(r.status_code, 200)
214+
self.assertTrue(e.desc in r.content)
83215

84216
class WgEditTestCase(django.test.TestCase):
85217
fixtures = ["names"]

ietf/wginfo/testurl.list

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)