--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -43,7 +43,12 @@
for f in thread.html.findAll('form'):
if f.get('action', '').endswith('/post'):
break
- params = dict(text=text)
+ params = dict()
+ inputs = f.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[f.find('textarea')['name']] = text
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer':thread_link.encode("utf-8")},
extra_environ=dict(username='root'))
@@ -57,17 +62,31 @@
r = self._make_post('This is a post')
assert 'This is a post' in r, r
post_link = str(r.html.find('div',{'class':'edit_post_form reply'}).find('form')['action'])
+ r = self.app.get(post_link[:-2], status=302)
r = self.app.get(post_link)
- r = self.app.get(post_link[:-2], status=302)
+ post_form = r.html.find('form',{'action':post_link})
+ params = dict()
+ inputs = post_form.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[post_form.find('textarea')['name']] = 'This is a new post'
r = self.app.post(post_link,
- params=dict(text='This is a new post'),
+ params=params,
headers={'Referer':thread_link.encode("utf-8")})
r = r.follow()
assert 'This is a new post' in r, r
r = self.app.get(post_link)
assert str(r).count('This is a new post') == 3
+ post_form = r.html.find('form',{'action':post_link + 'reply'})
+ params = dict()
+ inputs = post_form.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[post_form.find('textarea')['name']] = 'Tis a reply'
r = self.app.post(post_link + 'reply',
- params=dict(text='Tis a reply'),
+ params=params,
headers={'Referer':post_link.encode("utf-8")})
r = self.app.get(thread_link)
assert 'Tis a reply' in r, r
@@ -78,10 +97,19 @@
def test_edit_post(self):
r = self._make_post('This is a post')
- post_link = str(r.html.find('div',{'class':'edit_post_form reply'}).find('form')['action'])
+ thread_url = r.request.url
+ reply_form = r.html.find('div',{'class':'edit_post_form reply'}).find('form')
+ post_link = str(reply_form['action'])
assert 'This is a post' in str(r.html.find('div',{'class':'display_post'}))
assert 'Last edit:' not in str(r.html.find('div',{'class':'display_post'}))
- r = self.app.post(post_link, {'text':'zzz'}).follow()
+ params = dict()
+ inputs = reply_form.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[reply_form.find('textarea')['name']] = 'zzz'
+ self.app.post(post_link, params)
+ r = self.app.get(thread_url)
assert 'zzz' in str(r.html.find('div',{'class':'display_post'}))
assert 'Last edit: Test Admin less than 1 minute ago' in str(r.html.find('div',{'class':'display_post'}))
@@ -97,8 +125,14 @@
for f in thread.html.findAll('form'):
if f.get('action', '').endswith('/post'):
break
- self.post_form_link = f['action'].encode('utf-8')
- r = self.app.post(f['action'].encode('utf-8'), params=dict(text='Test Post'),
+ self.post_form_link = f['action'].encode('utf-8')
+ params = dict()
+ inputs = f.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[f.find('textarea')['name']] = 'Test Post'
+ r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer':self.thread_link})
r = r.follow()
self.post_link = str(r.html.find('div',{'class':'edit_post_form reply'}).find('form')['action'])
@@ -106,7 +140,7 @@
def test_attach(self):
r = self.app.post(self.post_link + 'attach',
upload_files=[('file_info', 'test.txt', 'HiThere!')])
- r = self.app.get(self.post_link)
+ r = self.app.get(self.thread_link)
for alink in r.html.findAll('a'):
if 'attachment' in alink['href']:
alink = str(alink['href'])