def test_get_count_view_type(self): factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='webpage_view') result = ResourceView.get_count_not_in_view_types(['image_view']) assert_equals(result, [('webpage_view', 1)])
def test_resource_view_list_reorder(self): resource_view_1 = factories.ResourceView(title='View 1') resource_id = resource_view_1['resource_id'] resource_view_2 = factories.ResourceView(resource_id=resource_id, title='View 2') resource_view_list = helpers.call_action('resource_view_list', id=resource_id) assert_equals(resource_view_list[0]['title'], 'View 1') assert_equals(resource_view_list[1]['title'], 'View 2') # Reorder views result = helpers.call_action( 'resource_view_reorder', id=resource_id, order=[resource_view_2['id'], resource_view_1['id']]) assert_equals(result['order'], [resource_view_2['id'], resource_view_1['id']]) resource_view_list = helpers.call_action('resource_view_list', id=resource_id) assert_equals(resource_view_list[0]['title'], 'View 2') assert_equals(resource_view_list[1]['title'], 'View 1')
def test_delete_view_type(self): factories.ResourceView(view_type='image') factories.ResourceView(view_type='webpage') ResourceView.delete_not_in_view_types(['image']) result = ResourceView.get_count_not_in_view_types(['image']) assert_equals(result, [])
def test_delete_view_type_doesnt_commit(self): factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='webpage_view') ResourceView.delete_not_in_view_types(['image_view']) model.Session.rollback() result = ResourceView.get_count_not_in_view_types(['image_view']) assert_equals(result, [('webpage_view', 1)])
def test_resource_view_factory(self): if not p.plugin_loaded('image_view'): p.load('image_view') resource_view1 = factories.ResourceView() resource_view2 = factories.ResourceView() assert_not_equals(resource_view1['id'], resource_view2['id']) p.unload('image_view')
def test_resource_view_clear(self): factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='recline_view') factories.ResourceView(view_type='recline_view') count = model.Session.query(model.ResourceView).count() assert_equals(count, 4) helpers.call_action('resource_view_clear', context={}) count = model.Session.query(model.ResourceView).count() assert_equals(count, 0)
def test_not_authorized_if_user_has_no_permissions_on_dataset(self): org = factories.Organization() user = factories.User() member = {'username': user['name'], 'role': 'admin', 'id': org['id']} helpers.call_action('organization_member_create', **member) user_2 = factories.User() dataset = factories.Dataset(owner_org=org['id']) resource = factories.Resource(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_2['name'], 'model': model} nose.tools.assert_raises(logic.NotAuthorized, helpers.call_auth, 'resource_view_update', context=context, **params)
def test_purging_resource_removes_its_resource_views(self): resource_view_dict = factories.ResourceView() resource = model.Resource.get(resource_view_dict['resource_id']) resource.purge() model.repo.commit_and_remove() assert_equals(ResourceView.get(resource_view_dict['id']), None)
def test_resource_view_clear_with_types(self): factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='image_view') factories.ResourceView(view_type='recline_view') factories.ResourceView(view_type='recline_view') count = model.Session.query(model.ResourceView).count() assert_equals(count, 4) helpers.call_action('resource_view_clear', context={}, view_types=['image_view']) view_types = model.Session.query(model.ResourceView.view_type).all() assert_equals(len(view_types), 2) for view_type in view_types: assert_equals(view_type[0], 'recline_view')
def test_existent_resource_view_page_returns_ok_code(self): resource_view = factories.ResourceView() url = url_for(controller='package', action='resource_read', id=resource_view['package_id'], resource_id=resource_view['resource_id'], view_id=resource_view['id']) app = self._get_test_app() app.get(url, status=200)
def test_inexistent_resource_view_page_returns_not_found_code(self): resource_view = factories.ResourceView() url = url_for(controller='package', action='resource_read', id=resource_view['package_id'], resource_id=resource_view['resource_id'], view_id='inexistent-view-id') app = self._get_test_app() app.get(url, status=404)
def test_resource_view_update(self): resource_view = factories.ResourceView() params = { 'id': resource_view['id'], 'title': 'new title', 'description': 'new description' } result = helpers.call_action('resource_view_update', **params) assert_equals(result['title'], params['title']) assert_equals(result['description'], params['description'])
def test_resource_view_list_reorder_just_one_id(self): resource_view_1 = factories.ResourceView(title='View 1') resource_id = resource_view_1['resource_id'] resource_view_2 = factories.ResourceView(resource_id=resource_id, title='View 2') # Reorder Views back just by specifiying a single view to go first result = helpers.call_action('resource_view_reorder', id=resource_id, order=[resource_view_2['id']]) assert_equals(result['order'], [resource_view_2['id'], resource_view_1['id']]) resource_view_list = helpers.call_action('resource_view_list', id=resource_id) assert_equals(resource_view_list[0]['title'], 'View 2') assert_equals(resource_view_list[1]['title'], 'View 1')
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_get_all_without_views_returns_all_resources_without_views(self): # Create resource with resource_view factories.ResourceView() expected_resources = [ factories.Resource(format='format'), factories.Resource(format='other_format') ] resources = Resource.get_all_without_views() expected_resources_ids = [r['id'] for r in expected_resources] resources_ids = [r.id for r in resources] assert_equals(expected_resources_ids.sort(), resources_ids.sort())
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_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_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_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_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_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(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_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_factory(self): resource_view1 = factories.ResourceView() resource_view2 = factories.ResourceView() assert_not_equals(resource_view1['id'], resource_view2['id'])