Skip to content

Commit

Permalink
records: test record stats ui
Browse files Browse the repository at this point in the history
  • Loading branch information
ChiaraBi authored and slint committed Jul 17, 2018
1 parent 385f07a commit a41c43b
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 3 deletions.
1 change: 0 additions & 1 deletion tests/unit/records/test_schemas_json.py
Expand Up @@ -27,7 +27,6 @@
from invenio_indexer.api import RecordIndexer
from invenio_pidstore.models import PersistentIdentifier, PIDStatus
from invenio_records.api import Record

from mock import patch

from zenodo.modules.records.serializers import json_v1
Expand Down
73 changes: 72 additions & 1 deletion tests/unit/records/test_views.py
Expand Up @@ -28,13 +28,15 @@

import json
from datetime import datetime, timedelta
import pytest

from flask import render_template_string, url_for
from flask import render_template, render_template_string, url_for
from helpers import login_user_via_session
from invenio_indexer.api import RecordIndexer
from invenio_pidstore.models import PersistentIdentifier, PIDStatus
from invenio_records.api import Record
from invenio_search import current_search
from mock import Mock, patch

from zenodo.modules.records.views import zenodo_related_links

Expand Down Expand Up @@ -218,3 +220,72 @@ def test_citation_formatter_citeproc_get(api, api_client, es, db, full_record,
assert 'Doe, J.' in res.get_data(as_text=True)
assert 'Test title (Version 1.2.5).' in res.get_data(as_text=True)
assert '(2014).' in res.get_data(as_text=True)


@pytest.mark.parametrize(('stats', 'expected_result'), [
(None, {
'version_views': '0', 'views': '0',
'version_downloads': '0', 'downloads': '0',
'version_volume': '0 Bytes', 'volume': '0 Bytes',
'version_unique_views': '0', 'unique_views': '0',
'version_unique_downloads': '0', 'unique_downloads': '0'
}),
({
'version_views': 31200, 'views': 2130,
'version_downloads': 54, 'downloads': 28,
'version_volume': 213000, 'volume': 2000,
'version_unique_views': 280, 'unique_views': 27,
'version_unique_downloads': 180, 'unique_downloads': 25
}, {
'version_views': '31,200', 'views': '2,130',
'version_downloads': '54', 'downloads': '28',
'version_volume': '213.0 kB', 'volume': '2.0 kB',
'version_unique_views': '280', 'unique_views': '27',
'version_unique_downloads': '180', 'unique_downloads': '25'
}),
({
'version_views': 31200, 'views': 2130,
'version_downloads': 54, 'downloads': 28,
'version_volume': None, 'volume': 2000
}, {
'version_views': '31,200', 'views': '2,130',
'version_downloads': '54', 'downloads': '28',
'version_volume': '0 Bytes', 'volume': '2.0 kB',
'version_unique_views': '0', 'unique_views': '0',
'version_unique_downloads': '0', 'unique_downloads': '0'
})
])
def test_stats(app, db, minimal_record, stats, expected_result):
"""Test record stats."""
record = Record.create(minimal_record)

with patch('zenodo.modules.records.views.get_record_stats',
return_value=stats) as m:
# local DOI
record['doi'] = '10.5072/foo'
template = render_template('zenodo_records/box/record_stats.html',
record=record)

assert expected_result['views'] in template
assert expected_result['downloads'] in template
assert expected_result['volume'] in template
assert expected_result['unique_views'] in template
assert expected_result['unique_downloads'] in template
assert 'All versions' in template
assert expected_result['version_views'] in template
assert expected_result['version_downloads'] in template
assert expected_result['version_volume'] in template
assert expected_result['version_unique_views'] in template
assert expected_result['version_unique_downloads'] in template

# not local DOI
record['doi'] = '.dsfsdf'
template = render_template('zenodo_records/box/record_stats.html',
record=record)

assert expected_result['views'] in template
assert expected_result['downloads'] in template
assert expected_result['volume'] in template
assert expected_result['unique_views'] in template
assert expected_result['unique_downloads'] in template
assert 'All versions' not in template
@@ -1,3 +1,4 @@
{%- from "zenodo_records/macros/altmetric.html" import altmetric_badge -%}
{%- set stats = record|record_stats or {} %}
{%- set show_version_stats = record.doi and record.doi is local_doi -%}

Expand Down
Expand Up @@ -26,7 +26,6 @@

{%- from "zenodo_records/macros/accessright.html" import accessright_label -%}
{%- from "zenodo_records/macros/objecttype.html" import objecttype_label -%}
{%- from "zenodo_records/macros/altmetric.html" import altmetric_badge -%}
{%- from "zenodo_records/macros/authors.html" import authors, contributors -%}


Expand Down

0 comments on commit a41c43b

Please sign in to comment.