Exemple #1
0
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'])
Exemple #2
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)
Exemple #3
0
    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']
Exemple #4
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'])
Exemple #5
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}
        with pytest.raises(logic.NotAuthorized):
            helpers.call_auth("resource_view_update",
                              context=context,
                              **params)
Exemple #6
0
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)
Exemple #7
0
    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"]
            )
Exemple #8
0
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
Exemple #9
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)
Exemple #10
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)
Exemple #11
0
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'])
Exemple #12
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)
Exemple #13
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)
Exemple #14
0
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
Exemple #15
0
    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)
Exemple #17
0
    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
Exemple #18
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)
Exemple #19
0
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
Exemple #21
0
    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'
Exemple #23
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 response
Exemple #24
0
def test_resource_view_factory():
    resource_view1 = factories.ResourceView()
    resource_view2 = factories.ResourceView()
    assert resource_view1[u"id"] != resource_view2[u"id"]
Exemple #25
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)
Exemple #26
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)
    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