From 3993521721b0c8154e82745cadcc22c13cada452 Mon Sep 17 00:00:00 2001 From: Sergey Motornyuk Date: Wed, 26 Sep 2018 11:28:48 +0300 Subject: [PATCH] Add few tests --- ckan/tests/controllers/test_package.py | 65 ++++++++++++++++++++++++++ ckan/views/resource.py | 11 ++--- 2 files changed, 70 insertions(+), 6 deletions(-) diff --git a/ckan/tests/controllers/test_package.py b/ckan/tests/controllers/test_package.py index 06bb9c58ac1..16b54381494 100644 --- a/ckan/tests/controllers/test_package.py +++ b/ckan/tests/controllers/test_package.py @@ -1011,6 +1011,71 @@ def setup_class(cls): def teardown_class(cls): p.unload('image_view') + def test_resource_view_create(self): + user = factories.User() + env = {'REMOTE_USER': user['name'].encode('ascii')} + + owner_org = factories.Organization( + users=[{'name': user['id'], 'capacity': 'admin'}] + ) + dataset = factories.Dataset(owner_org=owner_org['id']) + resource = factories.Resource(package_id=dataset['id']) + + url = url_for('resource.edit_view', + id=resource['package_id'], + resource_id=resource['id'], + view_type='image_view') + + app = self._get_test_app() + response = app.post( + url, {'title': 'Test Image View'}, extra_environ=env + ).follow(extra_environ=env) + response.mustcontain('Test Image View') + + def test_resource_view_edit(self): + user = factories.User() + env = {'REMOTE_USER': user['name'].encode('ascii')} + + owner_org = factories.Organization( + users=[{'name': user['id'], 'capacity': 'admin'}] + ) + dataset = factories.Dataset(owner_org=owner_org['id']) + resource = factories.Resource(package_id=dataset['id']) + + resource_view = factories.ResourceView(resource_id=resource['id']) + url = url_for('resource.edit_view', + id=resource_view['package_id'], + resource_id=resource_view['resource_id'], + view_id=resource_view['id']) + + app = self._get_test_app() + response = app.post( + url, {'title': 'Updated RV Title'}, extra_environ=env + ).follow(extra_environ=env) + response.mustcontain('Updated RV Title') + + def test_resource_view_delete(self): + user = factories.User() + env = {'REMOTE_USER': user['name'].encode('ascii')} + + owner_org = factories.Organization( + users=[{'name': user['id'], 'capacity': 'admin'}] + ) + dataset = factories.Dataset(owner_org=owner_org['id']) + resource = factories.Resource(package_id=dataset['id']) + + resource_view = factories.ResourceView(resource_id=resource['id']) + url = url_for('resource.edit_view', + id=resource_view['package_id'], + resource_id=resource_view['resource_id'], + view_id=resource_view['id']) + + app = self._get_test_app() + response = app.post( + url, {'delete': 'Delete'}, extra_environ=env + ).follow(extra_environ=env) + response.mustcontain('This resource has no views') + def test_existent_resource_view_page_returns_ok_code(self): resource_view = factories.ResourceView() diff --git a/ckan/views/resource.py b/ckan/views/resource.py index f15c72fd6a6..8957265bff8 100644 --- a/ckan/views/resource.py +++ b/ckan/views/resource.py @@ -611,10 +611,6 @@ def _prepare(self, id, resource_id): def post(self, package_type, id, resource_id, view_id=None): context, extra_vars = self._prepare(id, resource_id) - to_preview = request.form.get(u'preview', False) - if to_preview: - context[u'preview'] = True - to_delete = request.form.get(u'delete', None) data = clean_dict( dict_fns.unflatten( tuplize_dict( @@ -623,8 +619,11 @@ def post(self, package_type, id, resource_id, view_id=None): ) ) data.pop(u'save', None) - data.pop(u'preview', None) - data.pop(u'delete', None) + + to_preview = data.pop(u'preview', False) + if to_preview: + context[u'preview'] = True + to_delete = data.pop(u'delete', None) data[u'resource_id'] = resource_id data[u'view_type'] = request.args.get(u'view_type')