Exemplo n.º 1
0
    def test_dataverse_file_url(self):

        # Create some dataverse file
        dvf = DataverseFile(
            node=self.project,
            file_id='12345',
        )
        dvf.save()

        # Assert url is correct
        assert_equal('dataverse/file/12345', dvf.file_url)
Exemplo n.º 2
0
    def test_dataverse_file_url(self):

        # Create some dataverse file
        dvf = DataverseFile(
            node=self.project,
            file_id='12345',
        )
        dvf.save()

        # Assert url is correct
        assert_equal('dataverse/file/12345', dvf.file_url)
Exemplo n.º 3
0
    def test_path_doesnt_crash_without_addon(self):
        dvf = DataverseFile(node=self.project, file_id='12345')
        self.project.delete_addon('dataverse', Auth(self.user))

        assert_is(self.project.get_addon('dataverse'), None)

        assert_true(dvf.file_id)
        assert_true(dvf.waterbutler_path)
Exemplo n.º 4
0
def dataverse_view_file(node_addon, auth, **kwargs):

    node = node_addon.owner

    file_id = kwargs.get('path')

    fail_if_unauthorized(node_addon, auth, file_id)
    fail_if_private(file_id)

    # lazily create a file GUID record
    file_obj, created = DataverseFile.get_or_create(node=node, path=file_id)

    redirect_url = check_file_guid(file_obj)
    if redirect_url:
        return redirect(redirect_url)

    # Get or create rendered file
    cache_file_name = '{0}.html'.format(file_id)
    rendered = get_cache_content(node_addon, cache_file_name)

    if rendered is None:
        filename, content = scrape_dataverse(file_id)
        _, ext = os.path.splitext(filename)
        download_url = node.api_url_for(
            'dataverse_download_file_proxy', path=file_id
        )
        rendered = get_cache_content(
            node_addon,
            cache_file_name,
            start_render=True,
            remote_path=file_obj.file_id + ext,  # Include extension for MFR
            file_content=content,
            download_url=download_url,
        )
    else:
        filename, _ = scrape_dataverse(file_id, name_only=True)

    render_url = node.api_url_for(
        'dataverse_get_rendered_file',
        path=file_id,
        render=True
    )
    ret = {
        'file_name': filename,
        'rendered': rendered,
        'render_url': render_url,
        'urls': {
            'render': render_url,
            'download': node.web_url_for('dataverse_download_file',
                                         path=file_id),
            'info': node.api_url_for('dataverse_get_file_info',
                                     path=file_id),
        }

    }
    ret.update(_view_project(node, auth))
    return ret
Exemplo n.º 5
0
    def test_unique_identifier(self):
        dvf = DataverseFile(node=self.project, file_id='12345')

        assert_true(dvf.file_id, '12345')
        assert_equals(dvf.unique_identifier, '12345')
Exemplo n.º 6
0
    def test_waterbutler_path(self):
        dvf = DataverseFile(node=self.project, file_id='12345')

        assert_equals(dvf.file_id, '12345')
        assert_equals(dvf.waterbutler_path, '/12345')
Exemplo n.º 7
0
 def test_constants(self):
     dvf = DataverseFile()
     assert_equal('dataverse', dvf.provider)
     assert_equal('version', dvf.version_identifier)