Skip to content

Commit 01ade79

Browse files
committed
Merged in [9083] from rjsparks@nostrum.com:
Added dealing with /wg/foo/email-aliases, /wg/email-aliases, and similar for /rg. Added an initial test suite for all invocations of the email_alias views. - Legacy-Id: 9106 Note: SVN reference [9083] has been migrated to Git commit a208803
2 parents e7007a6 + a208803 commit 01ade79

4 files changed

Lines changed: 94 additions & 3 deletions

File tree

ietf/doc/tests.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1+
import os
12
import datetime
23
import sys
34
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
45
import unittest2 as unittest
56
else:
67
import unittest
78
from pyquery import PyQuery
9+
from tempfile import NamedTemporaryFile
810

911
from django.core.urlresolvers import reverse as urlreverse
12+
from django.conf import settings
1013

1114
from ietf.doc.models import ( Document, DocAlias, DocRelationshipName, RelatedDocument, State,
1215
DocEvent, BallotPositionDocEvent, LastCallDocEvent, WriteupDocEvent, save_document_in_history )
@@ -472,3 +475,46 @@ def test_references(self):
472475
self.assertEquals(r.status_code, 200)
473476
self.assertTrue(doc1.name in r.content)
474477

478+
479+
class EmailAliasesTests(TestCase):
480+
481+
def setUp(self):
482+
make_test_data()
483+
self.doc_alias_file = NamedTemporaryFile(delete=False)
484+
self.doc_alias_file.write("""# Generated by hand at 2015-02-12_16:26:45
485+
virtual.ietf.org anything
486+
draft-ietf-mars-test@ietf.org xfilter-draft-ietf-mars-test
487+
expand-draft-ietf-mars-test@virtual.ietf.org mars-author@example.com, mars-collaborator@example.com
488+
draft-ietf-mars-test.authors@ietf.org xfilter-draft-ietf-mars-test.authors
489+
expand-draft-ietf-mars-test.authors@virtual.ietf.org mars-author@example.mars, mars-collaborator@example.mars
490+
draft-ietf-mars-test.chairs@ietf.org xfilter-draft-ietf-mars-test.chairs
491+
expand-draft-ietf-mars-test.chairs@virtual.ietf.org mars-chair@example.mars
492+
draft-ietf-mars-test.all@ietf.org xfilter-draft-ietf-mars-test.all
493+
expand-draft-ietf-mars-test.all@virtual.ietf.org mars-author@example.mars, mars-collaborator@example.mars, mars-chair@example.mars
494+
draft-ietf-ames-test@ietf.org xfilter-draft-ietf-ames-test
495+
expand-draft-ietf-ames-test@virtual.ietf.org ames-author@example.com, ames-collaborator@example.com
496+
draft-ietf-ames-test.authors@ietf.org xfilter-draft-ietf-ames-test.authors
497+
expand-draft-ietf-ames-test.authors@virtual.ietf.org ames-author@example.ames, ames-collaborator@example.ames
498+
draft-ietf-ames-test.chairs@ietf.org xfilter-draft-ietf-ames-test.chairs
499+
expand-draft-ietf-ames-test.chairs@virtual.ietf.org ames-chair@example.ames
500+
draft-ietf-ames-test.all@ietf.org xfilter-draft-ietf-ames-test.all
501+
expand-draft-ietf-ames-test.all@virtual.ietf.org ames-author@example.ames, ames-collaborator@example.ames, ames-chair@example.ames
502+
503+
""")
504+
self.doc_alias_file.close()
505+
settings.DRAFT_VIRTUAL_PATH = self.doc_alias_file.name
506+
507+
def tearDown(self):
508+
os.unlink(self.doc_alias_file.name)
509+
510+
def testAliases(self):
511+
url = urlreverse('ietf.doc.views_doc.email_aliases', kwargs=dict())
512+
r = self.client.get(url)
513+
self.assertTrue(all([x in r.content for x in ['mars-test@','mars-test.authors@','mars-test.chairs@']]))
514+
self.assertTrue(all([x in r.content for x in ['ames-test@','ames-test.authors@','ames-test.chairs@']]))
515+
516+
url = urlreverse('ietf.doc.views_doc.email_aliases', kwargs=dict(name="draft-ietf-mars-test"))
517+
r = self.client.get(url)
518+
self.assertTrue(all([x in r.content for x in ['mars-test@','mars-test.authors@','mars-test.chairs@']]))
519+
self.assertFalse(any([x in r.content for x in ['ames-test@','ames-test.authors@','ames-test.chairs@']]))
520+

ietf/group/info.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -623,8 +623,8 @@ def dependencies_pdf(request, acronym, group_type=None):
623623

624624
return HttpResponse(pdf, content_type='application/pdf')
625625

626-
def email_aliases(request, acronym=None):
627-
group = get_group_or_404(acronym,None) if acronym else None
626+
def email_aliases(request, acronym=None, group_type=None):
627+
group = get_group_or_404(acronym,group_type) if acronym else None
628628

629629
if acronym:
630630
pattern = re.compile('expand-(%s)(-\w+)@.*? +(.*)$'%acronym)
@@ -636,7 +636,8 @@ def email_aliases(request, acronym=None):
636636
for line in virtual_file.readlines():
637637
m = pattern.match(line)
638638
if m:
639-
aliases.append({'acronym':m.group(1),'alias_type':m.group(2),'expansion':m.group(3)})
639+
if acronym or not group_type or Group.objects.filter(acronym=m.group(1),type__slug=group_type):
640+
aliases.append({'acronym':m.group(1),'alias_type':m.group(2),'expansion':m.group(3)})
640641

641642
return render(request,'group/email_aliases.html',{'aliases':aliases,'ietf_domain':settings.IETF_DOMAIN,'group':group})
642643

ietf/group/tests_info.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import datetime
66

77
from pyquery import PyQuery
8+
from tempfile import NamedTemporaryFile
89
import debug # pyflakes:ignore
910

1011
from django.conf import settings
@@ -951,3 +952,44 @@ def test_customize_workflow(self):
951952
self.assertEqual(len(q('form').find('input[name=tag][value="%s"]' % tag.pk).parents("form").find("input[name=active]")), 1)
952953
group = Group.objects.get(acronym=group.acronym)
953954
self.assertTrue(tag in group.unused_tags.all())
955+
956+
class EmailAliasesTests(TestCase):
957+
958+
def setUp(self):
959+
make_test_data()
960+
self.group_alias_file = NamedTemporaryFile(delete=False)
961+
self.group_alias_file.write("""# Generated by hand at 2015-02-12_16:30:52
962+
virtual.ietf.org anything
963+
mars-ads@ietf.org xfilter-mars-ads
964+
expand-mars-ads@virtual.ietf.org aread@ietf.org
965+
mars-chairs@ietf.org xfilter-mars-chairs
966+
expand-mars-chairs@virtual.ietf.org mars_chair@ietf.org
967+
ames-ads@ietf.org xfilter-mars-ads
968+
expand-ames-ads@virtual.ietf.org aread@ietf.org
969+
ames-chairs@ietf.org xfilter-mars-chairs
970+
expand-ames-chairs@virtual.ietf.org mars_chair@ietf.org
971+
""")
972+
self.group_alias_file.close()
973+
settings.GROUP_VIRTUAL_PATH = self.group_alias_file.name
974+
975+
def tearDown(self):
976+
os.unlink(self.group_alias_file.name)
977+
978+
def testNothing(self):
979+
url = urlreverse('ietf.group.info.email_aliases', kwargs=dict())
980+
r = self.client.get(url)
981+
self.assertTrue(all([x in r.content for x in ['mars-ads@','mars-chairs@','ames-ads@','ames-chairs@']]))
982+
983+
url = urlreverse('ietf.group.info.email_aliases', kwargs=dict(acronym="mars"))
984+
r = self.client.get(url)
985+
self.assertTrue(all([x in r.content for x in ['mars-ads@','mars-chairs@']]))
986+
self.assertFalse(any([x in r.content for x in ['ames-ads@','ames-chairs@']]))
987+
988+
url = urlreverse('ietf.group.info.email_aliases', kwargs=dict(group_type="wg"))
989+
r = self.client.get(url)
990+
self.assertTrue('mars-ads@' in r.content)
991+
992+
url = urlreverse('ietf.group.info.email_aliases', kwargs=dict(group_type="rg"))
993+
r = self.client.get(url)
994+
self.assertFalse('mars-ads@' in r.content)
995+

ietf/group/urls_info.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
(r'^chartering/$', RedirectView.as_view(url='/group/chartering/')),
1818
(r'^chartering/create/$', RedirectView.as_view(url='/group/chartering/create/%(group_type)s/')),
1919
(r'^bofs/$', info.bofs),
20+
(r'^email-aliases/$', 'ietf.group.info.email_aliases'),
2021
(r'^bofs/create/$', edit.edit, {'action': "create"}, "bof_create"),
2122
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/documents/txt/$', info.group_documents_txt),
2223
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/$', info.group_home, None, "group_home"),
@@ -33,4 +34,5 @@
3334
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/milestones/charter/reset/$', milestones.reset_charter_milestones, None, "group_reset_charter_milestones"),
3435
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/ajax/searchdocs/$', milestones.ajax_search_docs, None, "group_ajax_search_docs"),
3536
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/workflow/$', edit.customize_workflow),
37+
(r'^(?P<acronym>[A-Za-z0-9._+-]+)/email-aliases/$', 'ietf.group.info.email_aliases'),
3638
)

0 commit comments

Comments
 (0)