Skip to content

Commit 2bf8e0a

Browse files
committed
Move fixture generation for names to name app, add liaison edit test,
fix some liaison bugs - Legacy-Id: 3347
1 parent 91ced5c commit 2bf8e0a

6 files changed

Lines changed: 345 additions & 38 deletions

File tree

ietf/liaisons/formsREDESIGN.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ def __init__(self, user, *args, **kwargs):
8080
x = getattr(self.instance, name)
8181
if name == "purpose": # proxy has a name-clash on purpose so help it
8282
x = x.order
83+
84+
try:
85+
x = x.pk # foreign keys need the .pk, not the actual object
86+
except AttributeError:
87+
pass
8388
self.initial[name] = x
8489
except AttributeError:
8590
# we have some fields on the form that aren't in the model

ietf/liaisons/tests.py

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def doCanonicalize(self, url, content):
2222
return content
2323

2424
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
25-
from ietf.liaisons.models import LiaisonStatement
25+
from ietf.liaisons.models import LiaisonStatement, LiaisonStatementPurposeName
2626
from redesign.person.models import Person, Email
2727
from redesign.group.models import Group, Role
2828

@@ -87,7 +87,7 @@ def test_taken_care_of(self):
8787
q = PyQuery(r.content)
8888
self.assertEquals(len(q('form input[name=do_action_taken]')), 0)
8989

90-
# logged in and get
90+
# log in and get
9191
self.client.login(remote_user="secretary")
9292

9393
r = self.client.get(url)
@@ -103,7 +103,51 @@ def test_taken_care_of(self):
103103
liaison = LiaisonStatement.objects.get(id=liaison.id)
104104
self.assertTrue(liaison.action_taken)
105105

106+
def test_edit_liaison(self):
107+
make_test_data()
108+
liaison = make_liaison_models()
109+
110+
url = urlreverse('liaison_edit', kwargs=dict(object_id=liaison.pk))
111+
login_testing_unauthorized(self, "secretary", url)
112+
113+
# get
114+
r = self.client.get(url)
115+
self.assertEquals(r.status_code, 200)
116+
q = PyQuery(r.content)
117+
self.assertEquals(len(q('form input[name=from_field]')), 1)
118+
119+
# edit
120+
r = self.client.post(url,
121+
dict(from_field="from",
122+
replyto="replyto@example.com",
123+
organization="org",
124+
to_poc="to_poc@example.com",
125+
response_contact="responce_contact@example.com",
126+
technical_contact="technical_contact@example.com",
127+
cc1="cc1@example.com",
128+
purpose="4",
129+
deadline_date=(liaison.deadline + datetime.timedelta(days=1)).strftime("%Y-%m-%d"),
130+
title="title",
131+
submitted_date=(liaison.submitted + datetime.timedelta(days=1)).strftime("%Y-%m-%d"),
132+
body="body",
133+
))
134+
self.assertEquals(r.status_code, 302)
135+
new_liaison = LiaisonStatement.objects.get(id=liaison.id)
136+
self.assertEquals(new_liaison.from_name, "from")
137+
self.assertEquals(new_liaison.reply_to, "replyto@example.com")
138+
self.assertEquals(new_liaison.to_name, "org")
139+
self.assertEquals(new_liaison.to_contact, "to_poc@example.com")
140+
self.assertEquals(new_liaison.response_contact, "responce_contact@example.com")
141+
self.assertEquals(new_liaison.technical_contact, "technical_contact@example.com")
142+
self.assertEquals(new_liaison.cc, "cc1@example.com")
143+
self.assertEquals(new_liaison.purpose, LiaisonStatementPurposeName.objects.get(order=4))
144+
self.assertEquals(new_liaison.deadline, liaison.deadline + datetime.timedelta(days=1)),
145+
self.assertEquals(new_liaison.title, "title")
146+
self.assertEquals(new_liaison.submitted.date(), (liaison.submitted + datetime.timedelta(days=1)).date())
147+
self.assertEquals(new_liaison.body, "body")
148+
self.assertTrue(new_liaison.modified > liaison.modified)
106149

150+
# test links and edit button
107151

108152
if not settings.USE_DB_REDESIGN_PROXY_CLASSES:
109153
# the above tests only work with the new schema

ietf/liaisons/widgets.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,8 @@ def render(self, name, value, attrs=None):
8888
noliaison = 'inline'
8989
deselect = 'none'
9090
else:
91-
from ietf.liaisons.models import LiaisonDetail
9291
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
93-
from ietf.liaisons.proxy import LiaisonDetail
92+
from ietf.liaisons.proxy import LiaisonDetailProxy as LiaisonDetail
9493
liaison = LiaisonDetail.objects.get(pk=value)
9594
title = liaison.title
9695
if not title:

ietf/utils/test_utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,9 @@ def canonicalize_sitemap(s):
213213

214214
def login_testing_unauthorized(tc, remote_user, url):
215215
r = tc.client.get(url)
216-
tc.assertEquals(r.status_code, 302)
217-
tc.assertTrue("/accounts/login" in r['Location'])
216+
tc.assertTrue(r.status_code in (302, 403))
217+
if r.status_code == 302:
218+
tc.assertTrue("/accounts/login" in r['Location'])
218219

219220
tc.client.login(remote_user=remote_user)
220221

0 commit comments

Comments
 (0)