Esempio n. 1
0
    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)])
Esempio n. 2
0
    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')
Esempio n. 3
0
    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, [])
Esempio n. 4
0
    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)])
Esempio n. 5
0
    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')
Esempio n. 6
0
    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)
Esempio n. 7
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)
Esempio n. 8
0
    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)
Esempio n. 9
0
    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')
Esempio n. 10
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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'])
Esempio n. 13
0
    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')
Esempio n. 14
0
    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)
Esempio n. 15
0
    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())
Esempio n. 16
0
    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'])
Esempio n. 17
0
    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)
Esempio n. 18
0
    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)
Esempio n. 19
0
 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)
Esempio n. 20
0
    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)
Esempio n. 21
0
    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)
Esempio n. 22
0
    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)
Esempio n. 23
0
    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)
Esempio n. 24
0
    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)
Esempio n. 25
0
 def test_resource_view_factory(self):
     resource_view1 = factories.ResourceView()
     resource_view2 = factories.ResourceView()
     assert_not_equals(resource_view1['id'], resource_view2['id'])