You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2015/07/22 16:41:48 UTC
[26/29] allura git commit: [#7685] ticket:819 Fix tests failing due
to new markup
[#7685] ticket:819 Fix tests failing due to new markup
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/65526b46
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/65526b46
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/65526b46
Branch: refs/heads/ib/7685
Commit: 65526b4681378feaa2a9762d92ee3ea558b1f082
Parents: 100d91d
Author: Igor Bondarenko <je...@gmail.com>
Authored: Mon Jul 13 12:32:15 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Jul 22 15:35:26 2015 +0300
----------------------------------------------------------------------
AlluraTest/alluratest/controller.py | 16 ++++++++++++
.../tests/functional/test_controllers.py | 26 +++++++++++---------
.../forgetracker/tests/functional/test_root.py | 25 ++++++++++---------
.../forgewiki/tests/functional/test_rest.py | 2 +-
.../forgewiki/tests/functional/test_root.py | 2 --
5 files changed, 44 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/65526b46/AlluraTest/alluratest/controller.py
----------------------------------------------------------------------
diff --git a/AlluraTest/alluratest/controller.py b/AlluraTest/alluratest/controller.py
index 4a8f983..5a61ab7 100644
--- a/AlluraTest/alluratest/controller.py
+++ b/AlluraTest/alluratest/controller.py
@@ -18,6 +18,7 @@
"""Unit and functional test suite for allura."""
import os
import urllib
+import json
import mock
import beaker.session
@@ -169,6 +170,21 @@ class TestController(object):
"Extract webflash content from response."
return urllib.unquote(response.cookies_set.get('webflash', ''))
+ def subscription_options(self, response):
+ """
+ Extract subscription options to be passed to React SubscriptionForm
+ component from the <script> tag
+ """
+ script = None
+ for s in response.html.findAll('script'):
+ if s.getText().strip().startswith('document.SUBSCRIPTION_OPTIONS'):
+ script = s
+ break
+ assert script is not None, 'subscription options not found'
+ _, json_dict = script.getText().split('=')
+ json_dict = json_dict.strip(' ;')
+ return json.loads(json_dict)
+
class TestRestApiBase(TestController):
http://git-wip-us.apache.org/repos/asf/allura/blob/65526b46/ForgeGit/forgegit/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index 20bfc1b..7f6bf88 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -349,30 +349,32 @@ class TestRootController(_TestCase):
assert not M.Mailbox.subscribed(user_id=user._id)
r = self.app.get(ci + 'tree/',
extra_environ={'username': str(user.username)})
- link = r.html.find('a', 'artifact_subscribe')
- assert link is not None, r.html
+ opts = self.subscription_options(r)
+ assert_equal(opts['subscribed'], False)
# subscribe
- self.app.post(str(ci + 'tree/subscribe'),
- {'subscribe': True},
- extra_environ={'username': str(user.username)}).follow()
+ r = self.app.post(str(ci + 'tree/subscribe'),
+ {'subscribe': True},
+ extra_environ={'username': str(user.username)})
+ assert_equal(r.json, {'status': 'ok', 'subscribed': True})
# user is subscribed
assert M.Mailbox.subscribed(user_id=user._id)
r = self.app.get(ci + 'tree/',
extra_environ={'username': str(user.username)})
- inp = r.html.find('input', {'type': 'hidden', 'name': 'unsubscribe'})
- assert inp is not None
+ opts = self.subscription_options(r)
+ assert_equal(opts['subscribed'], True)
# unsubscribe
- self.app.post(str(ci + 'tree/subscribe'),
- {'unsubscribe': True},
- extra_environ={'username': str(user.username)}).follow()
+ r = self.app.post(str(ci + 'tree/subscribe'),
+ {'unsubscribe': True},
+ extra_environ={'username': str(user.username)})
+ assert_equal(r.json, {'status': 'ok', 'subscribed': False})
# user is not subscribed
assert not M.Mailbox.subscribed(user_id=user._id)
r = self.app.get(ci + 'tree/',
extra_environ={'username': str(user.username)})
- inp = r.html.find('input', {'type': 'hidden', 'name': 'subscribe'})
- assert inp is not None
+ opts = self.subscription_options(r)
+ assert_equal(opts['subscribed'], False)
def test_timezone(self):
ci = self._get_ci()
http://git-wip-us.apache.org/repos/asf/allura/blob/65526b46/ForgeTracker/forgetracker/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index 23c77f4..de061ca 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -294,7 +294,8 @@ class TestFunctionalController(TrackerTestController):
summary = 'test new ticket'
ticket_view = self.new_ticket(summary=summary).follow()
assert_true(summary in ticket_view)
- assert 'class="artifact_subscribe' in ticket_view
+ opts = self.subscription_options(ticket_view)
+ assert_equal(opts['subscribed'], False)
def test_labels(self):
ticket_view = self.new_ticket(summary='summary', labels="test label").follow()
@@ -840,7 +841,7 @@ class TestFunctionalController(TrackerTestController):
}, upload_files=[upload]).follow()
assert file_name in ticket_editor, ticket_editor.showbrowser()
req = self.app.get('/bugs/1/')
- file_link = req.html.findAll('form')[2].findAll('a')[6]
+ file_link = req.html.findAll('form')[1].findAll('a')[6]
assert_equal(file_link.string, file_name)
self.app.post(str(file_link['href']), {
'delete': 'True'
@@ -882,7 +883,7 @@ class TestFunctionalController(TrackerTestController):
ticket_editor = self.app.post('/bugs/1/update_ticket', {
'summary': 'zzz'
}, upload_files=[upload]).follow()
- download = self.app.get(str(ticket_editor.html.findAll('form')[2].findAll('a')[7]['href']))
+ download = self.app.get(str(ticket_editor.html.findAll('form')[1].findAll('a')[7]['href']))
assert_equal(download.body, file_data)
def test_two_attachments(self):
@@ -1239,7 +1240,7 @@ class TestFunctionalController(TrackerTestController):
# Test edit ticket form
self.new_ticket(summary='Test ticket')
response = self.app.get('/bugs/1/')
- form = response.forms[2]
+ form = response.forms[1]
assert_equal(
form['ticket_form.custom_fields._priority'].value, 'normal')
assert_equal(form['ticket_form.custom_fields._category'].value, '')
@@ -1247,9 +1248,9 @@ class TestFunctionalController(TrackerTestController):
form['ticket_form.custom_fields._priority'] = 'urgent'
form['ticket_form.custom_fields._category'] = 'bugs'
error_form = form.submit()
- assert_equal(error_form.forms[2]['ticket_form.custom_fields._priority'].value,
+ assert_equal(error_form.forms[1]['ticket_form.custom_fields._priority'].value,
'urgent')
- assert_equal(error_form.forms[2]['ticket_form.custom_fields._category'].value,
+ assert_equal(error_form.forms[1]['ticket_form.custom_fields._category'].value,
'bugs')
def test_new_ticket_validation(self):
@@ -1269,7 +1270,7 @@ class TestFunctionalController(TrackerTestController):
# set a summary, submit, and check for success
error_form.forms[1]['ticket_form.summary'] = summary
success = error_form.forms[1].submit().follow().html
- assert success.findAll('form')[2].get('action') == '/p/test/bugs/1/update_ticket_from_widget'
+ assert success.findAll('form')[1].get('action') == '/p/test/bugs/1/update_ticket_from_widget'
assert success.find('input', {'name': 'ticket_form.summary'})['value'] == summary
def test_edit_ticket_validation(self):
@@ -1280,7 +1281,7 @@ class TestFunctionalController(TrackerTestController):
# check that existing form is valid
assert response.html.find('input', {'name': 'ticket_form.summary'})['value'] == old_summary
assert not response.html.find('div', {'class': 'error'})
- form = response.forms[2]
+ form = response.forms[1]
# try submitting with no summary set and check for error message
form['ticket_form.summary'] = ""
error_form = form.submit()
@@ -1289,11 +1290,11 @@ class TestFunctionalController(TrackerTestController):
assert error_message.string == 'You must provide a Title'
assert error_message.findPreviousSibling('input').get('name') == 'ticket_form.summary'
# set a summary, submit, and check for success
- error_form.forms[2]['ticket_form.summary'] = new_summary
- r = error_form.forms[2].submit()
+ error_form.forms[1]['ticket_form.summary'] = new_summary
+ r = error_form.forms[1].submit()
assert r.status_int == 302, r.showbrowser()
success = r.follow().html
- assert success.findAll('form')[2].get('action') == '/p/test/bugs/1/update_ticket_from_widget'
+ assert success.findAll('form')[1].get('action') == '/p/test/bugs/1/update_ticket_from_widget'
assert success.find('input', {'name': 'ticket_form.summary'})['value'] == new_summary
def test_home(self):
@@ -2720,7 +2721,7 @@ class TestCustomUserField(TrackerTestController):
def test_change_user_field(self):
kw = {'custom_fields._code_review': ''}
r = self.new_ticket(summary='test custom fields', **kw).follow()
- f = r.forms[2]
+ f = r.forms[1]
# Populate ProjectUserCombo's select with option we want.
# This is a workaround for tests,
# in real enviroment this is populated via ajax.
http://git-wip-us.apache.org/repos/asf/allura/blob/65526b46/ForgeWiki/forgewiki/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_rest.py b/ForgeWiki/forgewiki/tests/functional/test_rest.py
index a2b58ae..6a5de3b 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_rest.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_rest.py
@@ -42,7 +42,7 @@ class TestWikiApi(TestRestApiBase):
def test_get_page(self):
r = self.app.get('/p/test/wiki/Home/')
- discussion_url = r.html.findAll('form')[3]['action'][:-4]
+ discussion_url = r.html.findAll('form')[2]['action'][:-4]
content = file(__file__).read()
self.app.post('/wiki/Home/attach',
upload_files=[('file_info', 'test_root.py', content)])
http://git-wip-us.apache.org/repos/asf/allura/blob/65526b46/ForgeWiki/forgewiki/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py b/ForgeWiki/forgewiki/tests/functional/test_root.py
index dafb74f..3f69d89 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -258,8 +258,6 @@ class TestRootController(TestController):
'labels': '',
'viewable_by-0.id': 'all'})
self.app.post('/wiki/tést/revert', params=dict(version='1'))
- response = self.app.get('/wiki/tést/')
- assert 'Subscribe' in response
response = self.app.get('/wiki/tést/diff?v1=0&v2=0')
assert 'tést' in response
d = dict(title='testdiff', text="""**Optionally**, you may also want to remove all the unused accounts that have accumulated (one was created for *every* logged in SF-user who has visited your MediaWiki hosted app):