Skip to content

Commit

Permalink
[#1659] make submit_and_follow a simple function
Browse files Browse the repository at this point in the history
  • Loading branch information
wardi committed Jun 23, 2014
1 parent 6a05b21 commit d5c50d0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 23 deletions.
27 changes: 14 additions & 13 deletions ckan/new_tests/controllers/test_package.py
Expand Up @@ -7,6 +7,7 @@
import ckan.model as model

webtest_submit = helpers.webtest_submit
submit_and_follow = helpers.submit_and_follow


class TestPackageControllerNew(helpers.FunctionalTestBase):
Expand Down Expand Up @@ -36,7 +37,7 @@ def test_resource_form_renders(self):
form = response.forms['dataset-edit']
form['name'] = u'resource-form-renders'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
assert_true('resource-edit' in response.forms)

def test_first_page_creates_draft_package(self):
Expand All @@ -53,7 +54,7 @@ def test_resource_required(self):
form = response.forms['dataset-edit']
form['name'] = u'one-resource-required'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']

response = webtest_submit(form, 'save', value='go-metadata',
Expand All @@ -66,11 +67,11 @@ def test_complete_package_with_one_resource(self):
form = response.forms['dataset-edit']
form['name'] = u'complete-package-with-one-resource'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']
form['url'] = u'http://example.com/resource'

self._submit_and_follow(form, env, 'save', 'go-metadata')
submit_and_follow(self.app, form, env, 'save', 'go-metadata')
pkg = model.Package.by_name(u'complete-package-with-one-resource')
assert_equal(pkg.resources[0].url, u'http://example.com/resource')
assert_equal(pkg.state, 'active')
Expand All @@ -80,15 +81,15 @@ def test_complete_package_with_two_resources(self):
form = response.forms['dataset-edit']
form['name'] = u'complete-package-with-two-resources'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']
form['url'] = u'http://example.com/resource0'

response = self._submit_and_follow(form, env, 'save', 'again')
response = submit_and_follow(self.app, form, env, 'save', 'again')
form = response.forms['resource-edit']
form['url'] = u'http://example.com/resource1'

self._submit_and_follow(form, env, 'save', 'go-metadata')
submit_and_follow(self.app, form, env, 'save', 'go-metadata')
pkg = model.Package.by_name(u'complete-package-with-two-resources')
assert_equal(pkg.resources[0].url, u'http://example.com/resource0')
assert_equal(pkg.resources[1].url, u'http://example.com/resource1')
Expand All @@ -99,21 +100,21 @@ def test_previous_button_works(self):
form = response.forms['dataset-edit']
form['name'] = u'previous-button-works'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']

response = self._submit_and_follow(form, env, 'save', 'go-dataset')
response = submit_and_follow(self.app, form, env, 'save', 'go-dataset')
assert_true('dataset-edit' in response.forms)

def test_previous_button_populates_form(self):
env, response = self._get_package_new_page_as_sysadmin()
form = response.forms['dataset-edit']
form['name'] = u'previous-button-populates-form'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']

response = self._submit_and_follow(form, env, 'save', 'go-dataset')
response = submit_and_follow(self.app, form, env, 'save', 'go-dataset')
form = response.forms['dataset-edit']
assert_true('title' in form.fields)
assert_equal(form['name'].value, u'previous-button-populates-form')
Expand All @@ -123,10 +124,10 @@ def test_previous_next_maintains_draft_state(self):
form = response.forms['dataset-edit']
form['name'] = u'previous-next-maintains-draft'

response = self._submit_and_follow(form, env, 'save')
response = submit_and_follow(self.app, form, env, 'save')
form = response.forms['resource-edit']

response = self._submit_and_follow(form, env, 'save', 'go-dataset')
response = submit_and_follow(self.app, form, env, 'save', 'go-dataset')
form = response.forms['dataset-edit']

webtest_submit(form, 'save', status=302, extra_environ=env)
Expand Down
21 changes: 11 additions & 10 deletions ckan/new_tests/helpers.py
Expand Up @@ -175,16 +175,17 @@ def teardown_class(cls):
config.clear()
config.update(cls._original_config)

def _submit_and_follow(self, form, extra_environ, name=None,
value=None, **args):
'''
Call webtest_submit with name/value passed expecting a redirect
and return the response from following that redirect.
'''
response = webtest_submit(form, name, value=value, status=302,
extra_environ=extra_environ, **args)
return self.app.get(url=response.headers['Location'],
extra_environ=extra_environ)

def submit_and_follow(app, form, extra_environ, name=None,
value=None, **args):
'''
Call webtest_submit with name/value passed expecting a redirect
and return the response from following that redirect.
'''
response = webtest_submit(form, name, value=value, status=302,
extra_environ=extra_environ, **args)
return app.get(url=response.headers['Location'],
extra_environ=extra_environ)


## FIXME: remove webtest_* functions below when we upgrade webtest
Expand Down

0 comments on commit d5c50d0

Please sign in to comment.