Skip to content

Commit d1ac491

Browse files
committed
Fix role() group name lookups. Add a unit test and a fixture to go
with it to try to prevent future regressions. (I assume this was a regression from my gaily model renaming fiasco.) - Legacy-Id: 806
1 parent b280998 commit d1ac491

2 files changed

Lines changed: 187 additions & 3 deletions

File tree

ietf/idtracker/fixtures/wgtest.xml

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<django-objects version="1.0">
3+
<object pk="4" model="idtracker.personororginfo">
4+
<field type="CharField" name="record_type"/>
5+
<field type="CharField" name="name_prefix"/>
6+
<field type="CharField" name="first_name">Hermey</field>
7+
<field type="CharField" name="first_name_key">HERMEY</field>
8+
<field type="CharField" name="middle_initial"/>
9+
<field type="CharField" name="middle_initial_key"/>
10+
<field type="CharField" name="last_name">Elf</field>
11+
<field type="CharField" name="last_name_key">ELF</field>
12+
<field type="CharField" name="name_suffix"/>
13+
<field type="DateField" name="date_modified">2007-07-02</field>
14+
<field type="CharField" name="modified_by"/>
15+
<field type="DateField" name="date_created">2007-07-02</field>
16+
<field type="CharField" name="created_by"/>
17+
<field type="CharField" name="address_type"/>
18+
</object>
19+
<object pk="1" model="idtracker.personororginfo">
20+
<field type="CharField" name="record_type"/>
21+
<field type="CharField" name="name_prefix"/>
22+
<field type="CharField" name="first_name">Kris</field>
23+
<field type="CharField" name="first_name_key">KRIS</field>
24+
<field type="CharField" name="middle_initial"/>
25+
<field type="CharField" name="middle_initial_key"/>
26+
<field type="CharField" name="last_name">Kringle</field>
27+
<field type="CharField" name="last_name_key">KRINGLE</field>
28+
<field type="CharField" name="name_suffix"/>
29+
<field type="DateField" name="date_modified">2007-07-02</field>
30+
<field type="CharField" name="modified_by"/>
31+
<field type="DateField" name="date_created">2007-07-02</field>
32+
<field type="CharField" name="created_by"/>
33+
<field type="CharField" name="address_type"/>
34+
</object>
35+
<object pk="2" model="idtracker.personororginfo">
36+
<field type="CharField" name="record_type"/>
37+
<field type="CharField" name="name_prefix"/>
38+
<field type="CharField" name="first_name">Snow</field>
39+
<field type="CharField" name="first_name_key">SNOW</field>
40+
<field type="CharField" name="middle_initial"/>
41+
<field type="CharField" name="middle_initial_key"/>
42+
<field type="CharField" name="last_name">Miser</field>
43+
<field type="CharField" name="last_name_key">MISER</field>
44+
<field type="CharField" name="name_suffix"/>
45+
<field type="DateField" name="date_modified">2007-07-02</field>
46+
<field type="CharField" name="modified_by"/>
47+
<field type="DateField" name="date_created">2007-07-02</field>
48+
<field type="CharField" name="created_by"/>
49+
<field type="CharField" name="address_type"/>
50+
</object>
51+
<object pk="3" model="idtracker.personororginfo">
52+
<field type="CharField" name="record_type"/>
53+
<field type="CharField" name="name_prefix"/>
54+
<field type="CharField" name="first_name">Rudolph</field>
55+
<field type="CharField" name="first_name_key">RUDOLPH</field>
56+
<field type="CharField" name="middle_initial"/>
57+
<field type="CharField" name="middle_initial_key"/>
58+
<field type="CharField" name="last_name">Reindeer</field>
59+
<field type="CharField" name="last_name_key">REINDEER</field>
60+
<field type="CharField" name="name_suffix"/>
61+
<field type="DateField" name="date_modified">2007-07-02</field>
62+
<field type="CharField" name="modified_by"/>
63+
<field type="DateField" name="date_created">2007-07-02</field>
64+
<field type="CharField" name="created_by"/>
65+
<field type="CharField" name="address_type"/>
66+
</object>
67+
<object pk="1" model="idtracker.wgchair">
68+
<field to="idtracker.personororginfo" name="person" rel="ManyToOneRel">1</field>
69+
<field to="idtracker.ietfwg" name="group_acronym" rel="ManyToOneRel">1</field>
70+
</object>
71+
<object pk="2" model="idtracker.wgchair">
72+
<field to="idtracker.personororginfo" name="person" rel="ManyToOneRel">2</field>
73+
<field to="idtracker.ietfwg" name="group_acronym" rel="ManyToOneRel">2</field>
74+
</object>
75+
<object pk="1" model="idtracker.ietfwg">
76+
<field to="idtracker.wgtype" name="group_type" rel="ManyToOneRel">1</field>
77+
<field type="DateField" name="proposed_date">
78+
<None/>
79+
</field>
80+
<field type="DateField" name="start_date">
81+
<None/>
82+
</field>
83+
<field type="DateField" name="dormant_date">
84+
<None/>
85+
</field>
86+
<field type="DateField" name="concluded_date">
87+
<None/>
88+
</field>
89+
<field to="idtracker.wgstatus" name="status" rel="ManyToOneRel">1</field>
90+
<field to="idtracker.areadirector" name="area_director" rel="ManyToOneRel">
91+
<None/>
92+
</field>
93+
<field type="CharField" name="meeting_scheduled"/>
94+
<field type="CharField" name="email_address"/>
95+
<field type="CharField" name="email_subscribe"/>
96+
<field type="CharField" name="email_keyword"/>
97+
<field type="CharField" name="email_archive"/>
98+
<field type="TextField" name="comments"/>
99+
<field type="DateField" name="last_modified_date">2007-07-02</field>
100+
<field type="CharField" name="meeting_scheduled_old"/>
101+
</object>
102+
<object pk="2" model="idtracker.ietfwg">
103+
<field to="idtracker.wgtype" name="group_type" rel="ManyToOneRel">3</field>
104+
<field type="DateField" name="proposed_date">
105+
<None/>
106+
</field>
107+
<field type="DateField" name="start_date">
108+
<None/>
109+
</field>
110+
<field type="DateField" name="dormant_date">
111+
<None/>
112+
</field>
113+
<field type="DateField" name="concluded_date">
114+
<None/>
115+
</field>
116+
<field to="idtracker.wgstatus" name="status" rel="ManyToOneRel">1</field>
117+
<field to="idtracker.areadirector" name="area_director" rel="ManyToOneRel">
118+
<None/>
119+
</field>
120+
<field type="CharField" name="meeting_scheduled"/>
121+
<field type="CharField" name="email_address"/>
122+
<field type="CharField" name="email_subscribe"/>
123+
<field type="CharField" name="email_keyword"/>
124+
<field type="CharField" name="email_archive"/>
125+
<field type="TextField" name="comments"/>
126+
<field type="DateField" name="last_modified_date">2007-07-02</field>
127+
<field type="CharField" name="meeting_scheduled_old"/>
128+
</object>
129+
<object pk="1" model="idtracker.acronym">
130+
<field type="CharField" name="acronym">xmas</field>
131+
<field type="CharField" name="name">Christmas</field>
132+
<field type="CharField" name="name_key">CHRISTMAS</field>
133+
</object>
134+
<object pk="2" model="idtracker.acronym">
135+
<field type="CharField" name="acronym">snow</field>
136+
<field type="CharField" name="name">Silly New Operational Work</field>
137+
<field type="CharField" name="name_key">SILLY NEW OPERATIONAL WORK</field>
138+
</object>
139+
<object pk="1" model="idtracker.wgtype">
140+
<field type="CharField" name="type">WG</field>
141+
</object>
142+
<object pk="2" model="idtracker.wgtype">
143+
<field type="CharField" name="type">PWG</field>
144+
</object>
145+
<object pk="3" model="idtracker.wgtype">
146+
<field type="CharField" name="type">BOF</field>
147+
</object>
148+
<object pk="4" model="idtracker.wgtype">
149+
<field type="CharField" name="type">AG</field>
150+
</object>
151+
<object pk="5" model="idtracker.wgtype">
152+
<field type="CharField" name="type">TEAM</field>
153+
</object>
154+
<object pk="1" model="idtracker.wgstatus">
155+
<field type="CharField" name="status">Active</field>
156+
</object>
157+
<object pk="2" model="idtracker.wgstatus">
158+
<field type="CharField" name="status">Dormant</field>
159+
</object>
160+
<object pk="3" model="idtracker.wgstatus">
161+
<field type="CharField" name="status">Concluded</field>
162+
</object>
163+
<object pk="1" model="idtracker.wgtechadvisor">
164+
<field to="idtracker.ietfwg" name="group_acronym" rel="ManyToOneRel">1</field>
165+
<field to="idtracker.personororginfo" name="person" rel="ManyToOneRel">3</field>
166+
</object>
167+
<object pk="1" model="idtracker.wgsecretary">
168+
<field to="idtracker.ietfwg" name="group_acronym" rel="ManyToOneRel">1</field>
169+
<field to="idtracker.personororginfo" name="person" rel="ManyToOneRel">4</field>
170+
</object>
171+
</django-objects>

ietf/idtracker/models.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -761,7 +761,7 @@ class WGChair(models.Model):
761761
def __str__(self):
762762
return "%s (%s)" % ( self.person, self.role() )
763763
def role(self):
764-
return "%s %s Chair" % ( self.group_acronym.acronym, self.group_acronym.group_type )
764+
return "%s %s Chair" % ( self.group_acronym, self.group_acronym.group_type )
765765
class Meta:
766766
db_table = 'g_chairs'
767767
verbose_name = "WG Chair"
@@ -782,7 +782,7 @@ class WGSecretary(models.Model):
782782
def __str__(self):
783783
return "%s (%s)" % ( self.person, self.role() )
784784
def role(self):
785-
return "%s %s Secretary" % ( self.group_acronym.acronym, self.group_acronym.group_type )
785+
return "%s %s Secretary" % ( self.group_acronym, self.group_acronym.group_type )
786786
class Meta:
787787
db_table = 'g_secretaries'
788788
verbose_name = "WG Secretary"
@@ -794,7 +794,7 @@ class WGTechAdvisor(models.Model):
794794
def __str__(self):
795795
return "%s (%s)" % ( self.person, self.role() )
796796
def role(self):
797-
return "%s Technical Advisor" % self.group_acronym.acronym
797+
return "%s Technical Advisor" % self.group_acronym
798798
class Meta:
799799
db_table = 'g_tech_advisors'
800800
verbose_name = "WG Technical Advisor"
@@ -834,6 +834,19 @@ class Admin:
834834
list_filter = ['done']
835835
pass
836836

837+
class WGRoleTest(TestCase):
838+
fixtures = ['wgtest']
839+
840+
def setUp(self):
841+
self.xmas = IETFWG.objects.get(group_acronym__acronym='xmas')
842+
self.snow = IETFWG.objects.get(group_acronym__acronym='snow')
843+
844+
def test_roles(self):
845+
self.assertEquals(self.xmas.wgchair_set.all()[0].role(), 'xmas WG Chair')
846+
self.assertEquals(self.snow.wgchair_set.all()[0].role(), 'snow BOF Chair')
847+
self.assertEquals(self.xmas.wgsecretary_set.all()[0].role(), 'xmas WG Secretary')
848+
self.assertEquals(self.xmas.wgtechadvisor_set.all()[0].role(), 'xmas Technical Advisor')
849+
837850
#### end wg stuff
838851

839852
class Role(models.Model):

0 commit comments

Comments
 (0)