Add basic tests for the information pages in wginfo

- Legacy-Id: 6089
This commit is contained in:
Ole Laursen 2013-09-05 22:08:11 +00:00
parent 459bbf39e0
commit b4feab127a
2 changed files with 153 additions and 40 deletions

View file

@ -50,36 +50,168 @@ from ietf.name.models import *
from ietf.person.models import *
from ietf.wginfo.mails import *
class WgInfoUrlTestCase(SimpleUrlTestCase):
def testUrls(self):
self.doTestUrls(__file__)
class WgFileTestCase(unittest.TestCase):
def testFileExistence(self):
fpath = os.path.join(settings.IETFWG_DESCRIPTIONS_PATH, "tls.desc.txt")
if not os.path.exists(fpath):
print "\nERROR: charter files not found in "+settings.IETFWG_DESCRIPTIONS_PATH
print "They are needed for testing WG charter pages."
print "Download them to a local directory with:"
print "wget -nd -nc -np -r http://www.ietf.org/wg-descriptions/"
print "And set IETFWG_DESCRIPTIONS_PATH in settings_local.py\n"
class WgOverviewTestCase(django.test.TestCase):
class GroupPagesTests(django.test.TestCase):
fixtures = ["names"]
def test_overview(self):
make_test_data()
def setUp(self):
self.charter_dir = os.path.abspath("tmp-charter-dir")
os.mkdir(self.charter_dir)
settings.CHARTER_PATH = self.charter_dir
wg = Group.objects.get(acronym="mars")
wg.charter.set_state(State.objects.get(used=True, type="charter", slug="intrev"))
def tearDown(self):
shutil.rmtree(self.charter_dir)
def test_active_wgs(self):
draft = make_test_data()
group = draft.group
url = urlreverse('ietf.wginfo.views.active_wgs')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.parent.name in r.content)
self.assertTrue(group.acronym in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(group.ad.plain_name() in r.content)
def test_wg_summaries(self):
draft = make_test_data()
group = draft.group
chair = Email.objects.filter(role__group=group, role__name="chair")[0]
with open(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev)), "w") as f:
f.write("This is a charter.")
url = urlreverse('ietf.wginfo.views.wg_summary_area')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.parent.name in r.content)
self.assertTrue(group.acronym in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(chair.address in r.content)
url = urlreverse('ietf.wginfo.views.wg_summary_acronym')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.acronym in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(chair.address in r.content)
url = urlreverse('ietf.wginfo.views.wg_charters')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.acronym in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(group.ad.plain_name() in r.content)
self.assertTrue(chair.address in r.content)
self.assertTrue("This is a charter." in r.content)
url = urlreverse('ietf.wginfo.views.wg_charters_by_acronym')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.acronym in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(group.ad.plain_name() in r.content)
self.assertTrue(chair.address in r.content)
self.assertTrue("This is a charter." in r.content)
def test_chartering_wgs(self):
draft = make_test_data()
group = draft.group
group.charter.set_state(State.objects.get(used=True, type="charter", slug="intrev"))
url = urlreverse('ietf.wginfo.views.chartering_wgs')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
q = PyQuery(r.content)
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("mars")')), 1)
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("%s")' % group.acronym)), 1)
def test_bofs(self):
draft = make_test_data()
group = draft.group
group.state_id = "bof"
group.save()
url = urlreverse('ietf.wginfo.views.bofs')
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
q = PyQuery(r.content)
self.assertEquals(len(q('table.ietf-doctable td.acronym a:contains("%s")' % group.acronym)), 1)
def test_group_documents(self):
draft = make_test_data()
group = draft.group
draft2 = Document.objects.create(
name="draft-somebody-mars-test",
time=datetime.datetime.now(),
type_id="draft",
title="Test By Somebody",
stream_id="ietf",
group=Group.objects.get(type="individ"),
abstract="Abstract.",
rev="01",
pages=2,
intended_std_level_id="ps",
shepherd=None,
ad=None,
expires=datetime.datetime.now() + datetime.timedelta(days=10),
notify="",
note="",
)
draft2.set_state(State.objects.get(used=True, type="draft", slug="active"))
DocAlias.objects.create(
document=draft2,
name=draft2.name,
)
url = urlreverse('ietf.wginfo.views.group_documents', kwargs=dict(acronym=group.acronym))
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(draft.name in r.content)
self.assertTrue(group.name in r.content)
self.assertTrue(group.acronym in r.content)
self.assertTrue(draft2.name in r.content)
def test_group_charter(self):
draft = make_test_data()
group = draft.group
with open(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev)), "w") as f:
f.write("This is a charter.")
milestone = GroupMilestone.objects.create(
group=group,
state_id="active",
desc="Get Work Done",
due=datetime.date.today() + datetime.timedelta(days=100))
milestone.docs.add(draft)
url = urlreverse('ietf.wginfo.views.group_charter', kwargs=dict(acronym=group.acronym))
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(group.name in r.content)
self.assertTrue(group.acronym in r.content)
self.assertTrue("This is a charter." in r.content)
self.assertTrue(milestone.desc in r.content)
self.assertTrue(milestone.docs.all()[0].name in r.content)
def test_history(self):
draft = make_test_data()
group = draft.group
e = GroupEvent.objects.create(
group=group,
desc="Something happened.",
type="added_comment",
by=Person.objects.get(name="(System)"))
url = urlreverse('ietf.wginfo.views.history', kwargs=dict(acronym=group.acronym))
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(e.desc in r.content)
class WgEditTestCase(django.test.TestCase):
fixtures = ["names"]

View file

@ -1,19 +0,0 @@
200 /wg/
404 /wg/nosuchgroup/
200 /wg/tls/
200 /wg/tls/charter/
200 /wg/mobike/ # concluded
200 /wg/mobike/charter/
200 /wg/catnip/ # concluded very long time ago
200 /wg/catnip/charter/ # concluded very long time ago
404 /wg/saag/ # not a WG
404 /wg/saag/charter/ # not a WG
200 /wg/1wg-summary.txt
200 /wg/1wg-summary-by-acronym.txt
301 /wg/summary.txt
301 /wg/summary-by-area.txt
301 /wg/summary-by-acronym.txt
200,heavy /wg/1wg-charters.txt
200,heavy /wg/1wg-charters-by-acronym.txt