def test_view_shown_on_resource_page_with_image_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='png') resource_view = factories.ResourceView(resource_id=resource['id'], image_url='http://some.image.png') url = url_for('{}_resource.read'.format(dataset['type']), id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert helpers.body_contains(response, resource_view['image_url'])
def test_resource_view_delete(self): resource_view = factories.ResourceView() params = {'id': resource_view['id']} helpers.call_action('resource_view_delete', context={}, **params) assert_raises(logic.NotFound, helpers.call_action, 'resource_view_show', context={}, **params) # The model object is actually deleted resource_view_obj = model.ResourceView.get(resource_view['id']) assert_equals(resource_view_obj, None)
def test_editors_can_edit_org_resource_views(self, org, member_1, editor): package = create_package(org, member_1) resource = factories.Resource(package_id=package['id']) resource_view = factories.ResourceView(resource_id=resource['id']) context = {'user': editor['name']} new_desc = 'description for test_editors_can_edit_org_resource_views' resource_view_updated = toolkit.get_action('resource_view_update')( context, { 'id': resource_view['id'], 'resource_id': resource['id'], 'description': new_desc }) assert resource_view_updated['description'] == new_desc assert resource_view['description'] != resource_view_updated[ 'description']
def test_no_org_user_cant_delete(self): user = factories.User() org = factories.Organization() dataset = factories.Dataset(owner_org=org['id'], resources=[factories.Resource()]) resource_view = factories.ResourceView( resource_id=dataset['resources'][0]['id']) context = {'user': user['name'], 'model': model} nose.tools.assert_raises(logic.NotAuthorized, helpers.call_auth, 'resource_view_delete', context=context, id=resource_view['id'])
def test_anon_can_not_update(self): resource_view = factories.ResourceView() params = { "id": resource_view["id"], "title": "Resource View Updated", "view_type": "image_view", "image_url": "url", } context = {"user": None, "model": model} with pytest.raises(logic.NotAuthorized): helpers.call_auth("resource_view_update", context=context, **params)
def test_view_shown_on_resource_page_with_image_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='png') resource_view = factories.ResourceView(resource_id=resource['id'], image_url='http://some.image.png') url = url_for('resource.read', id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert (resource_view['image_url'] in response)
def test_no_org_user_cant_delete_2(self): user = factories.User() org = factories.Organization() dataset = factories.Dataset( owner_org=org["id"], resources=[factories.Resource()] ) resource_view = factories.ResourceView( resource_id=dataset["resources"][0]["id"] ) context = {"user": user["name"], "model": model} with pytest.raises(logic.NotAuthorized): helpers.call_auth( "resource_view_delete", context=context, id=resource_view["id"] )
def test_view_shown_on_resource_page_with_audio_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='wav') resource_view = factories.ResourceView(resource_id=resource['id'], view_type='audio_view', audio_url='http://example.wav') url = url_for('{}_resource.read'.format(dataset['type']), id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert resource_view['audio_url'] in response
def test_anon_can_not_update(self): resource_view = factories.ResourceView() params = { 'id': resource_view['id'], 'title': 'Resource View Updated', 'view_type': 'image_view', 'image_url': 'url' } context = {'user': None, 'model': model} nose.tools.assert_raises(logic.NotAuthorized, helpers.call_auth, 'resource_view_update', context=context, **params)
def test_filterable_views_converts_filter_fields_and_values_into_filters_dict(self, datapreview_mock): filterable_view = mock.MagicMock() filterable_view.info.return_value = {'filterable': True} datapreview_mock.get_view_plugin.return_value = filterable_view resource_view = factories.ResourceView() context = {} params = { 'id': resource_view['id'], 'filter_fields': ['country', 'weather', 'country'], 'filter_values': ['Brazil', 'warm', 'Argentina'] } result = helpers.call_action('resource_view_update', context, **params) expected_filters = { 'country': ['Brazil', 'Argentina'], 'weather': ['warm'] } assert_equals(result['filters'], expected_filters)
def test_view_shown_on_resource_page_with_pdf_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='pdf') resource_view = factories.ResourceView( resource_id=resource['id'], view_type='pdf_view', pdf_url='https://example/document.pdf') url = url_for('{}_resource.read'.format(dataset['type']), id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert helpers.body_contains(response, resource_view['pdf_url'])
def test_view_shown_on_resource_page_with_image_url(self): app = self._get_test_app() dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='png') resource_view = factories.ResourceView( resource_id=resource['id'], image_url='http://some.image.png') url = url_for(controller='package', action='resource_read', id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert_true(resource_view['image_url'] in response)
def test_org_user_can_delete(self): user = factories.User() org_users = [{'name': user['name'], 'capacity': 'editor'}] org = factories.Organization(users=org_users) dataset = factories.Dataset(owner_org=org['id'], resources=[factories.Resource()], user=user) resource_view = factories.ResourceView( resource_id=dataset['resources'][0]['id']) context = {'user': user['name'], 'model': model} response = helpers.call_auth('resource_view_delete', context=context, id=resource_view['id']) assert_equals(response, True)
def test_view_shown_on_resource_page_with_video_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='mp4') resource_view = factories.ResourceView( resource_id=resource['id'], view_type='video_view', video_url='https://example/video.mp4') url = url_for('resource.read', id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert resource_view['video_url'] in response
def test_org_user_can_delete_2(self): user = factories.User() org_users = [{"name": user["name"], "capacity": "editor"}] org = factories.Organization(users=org_users) dataset = factories.Dataset(owner_org=org["id"], resources=[factories.Resource()], user=user) resource_view = factories.ResourceView( resource_id=dataset["resources"][0]["id"]) context = {"user": user["name"], "model": model} response = helpers.call_auth("resource_view_delete", context=context, id=resource_view["id"]) assert response
def test_view_shown_on_resource_page(self): app = self._get_test_app() dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], url='http://some.website.html') resource_view = factories.ResourceView( resource_id=resource['id'], view_type='webpage_view', page_url='http://some.other.website.html',) url = url_for(controller='package', action='resource_read', id=dataset['name'], resource_id=resource['id']) response = app.get(url) assert_true(resource_view['page_url'] in response)
def test_view_shown_on_resource_page(self, app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset["id"], url="http://some.website.html") resource_view = factories.ResourceView( resource_id=resource["id"], view_type="webpage_view", page_url="http://some.other.website.html", ) url = url_for("resource.read", id=dataset["name"], resource_id=resource["id"]) response = app.get(url) assert resource_view["page_url"] in response
def test_authorized_if_user_has_permissions_on_dataset(self): user = factories.User() dataset = factories.Dataset(user=user) resource = factories.Resource(user=user, package_id=dataset['id']) resource_view = factories.ResourceView(resource_id=resource['id']) params = {'id': resource_view['id'], 'resource_id': resource['id'], 'title': 'Resource View Updated', 'view_type': 'image_view', 'image_url': 'url'} context = {'user': user['name'], 'model': model} response = helpers.call_auth('resource_view_update', context=context, **params) assert_equals(response, True)
def test_view_shown_on_resource_page_with_pdf_url(app): dataset = factories.Dataset() resource = factories.Resource(package_id=dataset['id'], format='pdf') resource_view = factories.ResourceView( resource_id=resource['id'], view_type='pdf_view', pdf_url='https://example/document.pdf') if toolkit.check_ckan_version("2.9"): url = toolkit.url_for('{}_resource.read'.format(dataset['type']), id=dataset['name'], resource_id=resource['id']) else: url = toolkit.url_for(controller='package', action='resource_read', id=resource_view['package_id'], resource_id=resource['id']) response = app.get(url) assert 'https://example/document.pdf' in response.body
def create_mock_data(organization_name, dataset_name, group_name, resource_name, resource_view_title, **kwargs): mock_data = {} mock_data['organization'] = factories.Organization( name=organization_name, orgportals_copyright='2016') mock_data['organization_name'] = organization_name mock_data['organization_id'] = mock_data['organization']['id'] org_image = mock_data['organization']['image_display_url'] mock_data['organization_image'] = org_image mock_data['group'] = factories.Group(name=group_name) mock_data['group_name'] = mock_data['group']['name'] mock_data['dataset'] = factories.Dataset( name=dataset_name, owner_org=mock_data['organization_id'], groups=[{ 'name': mock_data['group_name'] }]) mock_data['dataset_name'] = dataset_name mock_data['package_id'] = mock_data['dataset']['id'] mock_data['groups'] = mock_data['dataset']['groups'] mock_data['resource'] = factories.Resource( package_id=mock_data['package_id'], name=resource_name) mock_data['resource_name'] = resource_name mock_data['resource_id'] = mock_data['resource']['id'] mock_data['resource_view'] = factories.ResourceView( resource_id=mock_data['resource_id'], title=resource_view_title) mock_data['resource_view_title'] = resource_view_title mock_data['resource_view_id'] = mock_data['resource_view']['id'] mock_data['context'] = {'user': factories._get_action_user_name(kwargs)} return mock_data
def test_resource_view_show_private_member(self): org = factories.Organization() dataset = factories.Dataset(private=True, owner_org=org['id']) resource = factories.Resource(package_id=dataset['id']) resource_view = factories.ResourceView(resource_id=resource['id']) user = factories.User() context = self._get_context(user) # Needed until ckan/ckan#4828 is backported context['resource'] = model.Resource.get(resource['id']) with pytest.raises(logic.NotAuthorized): helpers.call_auth('resource_view_show', context=context, id=resource_view['id']) helpers.call_action('package_collaborator_create', id=dataset['id'], user_id=user['id'], capacity='member') assert helpers.call_auth('resource_view_show', context=context, id=resource_view['id'])
def test_view_shown_on_resource_page(self): app = self._get_test_app() dataset = factories.Dataset() sysadmin = factories.Sysadmin() resource = factories.Resource(package_id=dataset['id'], url='http://some.website.html',) datastore_resource = p.toolkit.get_action('datastore_create')( {'user': sysadmin.get('name')}, {'resource_id': resource.get('id'), 'force': True} ) resource_view = factories.ResourceView( resource_id=resource['id'], view_type='Chart builder', chart_type='Bar Chart', key_fields='foo,bar', x_fields='foo', color_scheme='#B80000', text_chart_number_action='average', legend='bottom',) response = p.toolkit.get_action('resource_view_show')( {'user': sysadmin.get('name')}, {'id': resource_view.get('id')} ) assert response.get('view_type') == 'Chart builder' assert response.get('chart_type') == 'Bar Chart' assert response.get('key_fields') == 'foo,bar' assert response.get('x_fields') == 'foo' assert response.get('color_scheme') == '#B80000' assert response.get('text_chart_number_action') == 'average' assert response.get('legend') == 'bottom'
def test_authorized_if_user_has_permissions_on_dataset(self): user = factories.User() dataset = factories.Dataset(user=user) resource = factories.Resource(user=user, package_id=dataset["id"]) resource_view = factories.ResourceView(resource_id=resource["id"]) params = { "id": resource_view["id"], "resource_id": resource["id"], "title": "Resource View Updated", "view_type": "image_view", "image_url": "url", } context = {"user": user["name"], "model": model} response = helpers.call_auth("resource_view_update", context=context, **params) assert response
def test_resource_view_factory(): resource_view1 = factories.ResourceView() resource_view2 = factories.ResourceView() assert resource_view1[u"id"] != resource_view2[u"id"]
def test_calling_with_only_id_doesnt_update_anything(self): resource_view = factories.ResourceView() params = {'id': resource_view['id']} result = helpers.call_action('resource_view_update', **params) assert_equals(result, resource_view)
def test_resource_view_get(self): resource_view_id = factories.ResourceView()['id'] resource_view = ResourceView.get(resource_view_id) assert_not_equals(resource_view, None)
def test_resource_view_get(self): resource_view_id = factories.ResourceView()["id"] resource_view = ResourceView.get(resource_view_id) assert resource_view is not None