SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 55cac3bd authored by Geert Kapteijns's avatar Geert Kapteijns
Browse files

add tests for DOICaller

parent 44662f35
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
import feedparser
import requests
import re
import datetime
from django.template import Template, Context
from .behaviors import ArxivCallable
......@@ -26,8 +27,16 @@ class DOICaller:
journal = data['container-title'][0]
volume = data.get('volume', '')
pages = self._get_pages(data)
pub_data = self._get_pub_date(data)
pub_date = self._get_pub_date(data)
self.data = {
'pub_title': pub_title,
'authorlist': authorlist,
'journal': journal,
'volume': volume,
'pages': pages,
'pub_date': pub_date,
}
def _get_pages(self, data):
# For Physical Review
......@@ -37,25 +46,17 @@ class DOICaller:
return pages
def _get_pub_date(self, data):
date_parts = data.get('issued', {}).get('date_parts', {})
date_parts = data['issued']['date-parts'][0]
year = date_parts[0]
month = date_parts[1]
day = date_parts[2]
pub_date = "{}-{}-{}".format(year, month, day)
pub_date = ''
try:
pub_date = (str(data['message']['issued']['date-parts'][0][0]) + '-' +
str(data['message']['issued']['date-parts'][0][1]))
try:
pub_date += '-' + str(
data['message']['issued']['date-parts'][0][2])
except (IndexError, KeyError):
pass
except (IndexError, KeyError):
pass
date_parts = data.get('issued', {}).get('date-parts', {})
if date_parts:
date_parts = date_parts[0]
year = date_parts[0]
month = date_parts[1]
day = date_parts[2]
pub_date = datetime.date(year, month, day).isoformat()
else:
pub_date = ''
return pub_date
......
......@@ -47,9 +47,27 @@ class ArxivCallerTest(TestCase):
class DOICallerTest(TestCase):
def setUp(self):
self.doi_string = '10.1103/PhysRevB.92.214427'
self.caller = DOICaller(self.doi_string)
def test_collects_data(self):
print(self.caller.crossref_data)
def test_works_for_physrev_doi(self):
caller = DOICaller('10.1103/PhysRevB.92.214427')
correct_data = {
'pub_date': '2015-12-18',
'journal': 'Physical Review B',
'pages': '',
'authorlist': [
'R. Vlijm', 'M. Ganahl', 'D. Fioretto', 'M. Brockmann', 'M. Haque', 'H. G. Evertz', 'J.-S. Caux'],
'volume': '92',
'pub_title': 'Quasi-soliton scattering in quantum spin chains'
}
self.assertEqual(caller.data, correct_data)
def test_works_for_scipost_doi(self):
caller = DOICaller('10.21468/SciPostPhys.2.2.012')
correct_data = {
'pub_date': '2017-04-04',
'journal': 'SciPost Physics',
'pub_title': 'One-particle density matrix of trapped one-dimensional impenetrable bosons from conformal invariance',
'pages': '',
'volume': '2',
'authorlist': ['Yannis Brun', 'Jerome Dubail']
}
self.assertEqual(caller.data, correct_data)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment