33import os
44from pkg_resources import parse_version
55
6- from doi import validate_doi , find_doi_in_text , __version__ , pdf_to_doi
6+ from doi import (
7+ validate_doi , find_doi_in_text , __version__ , pdf_to_doi ,
8+ get_real_url_from_doi
9+ )
710
811
912def test_valid_version ():
@@ -12,14 +15,37 @@ def test_valid_version():
1215
1316
1417def test_validate_doi ():
15- doi = '10.1063/1.5081715'
16- validate_doi (doi )
18+ data = [
19+ ('10.1063/1.5081715' ,
20+ 'http://aip.scitation.org/doi/10.1063/1.5081715' ),
21+ ('10.1007%2FBF01451751' ,
22+ 'http://link.springer.com/10.1007/BF01451751' ),
23+ ('10.1103/PhysRevLett.49.57' ,
24+ 'https://link.aps.org/doi/10.1103/PhysRevLett.49.57' ),
25+ ('10.1080/14786442408634457' ,
26+ 'https://www.tandfonline.com/doi/full/10.1080/14786442408634457' ),
27+ ('10.1021/jp003647e' , 'https://pubs.acs.org/doi/10.1021/jp003647e' ),
28+ ('10.1016/S0009-2614(97)04014-1' ,
29+ 'http://linkinghub.elsevier.com/retrieve/pii/S0009261497040141' ),
30+ ]
31+ for doi , url in data :
32+ assert (url == validate_doi (doi ))
33+
1734 for doi in ['' , 'asdf' ]:
1835 try :
1936 validate_doi (doi )
2037 except ValueError as e :
2138 assert (str (e ) == 'HTTP 404: DOI not found' )
2239
40+ def test_get_real_url_from_doi ():
41+ data = [
42+ ('10.1016/S0009-2614(97)04014-1' ,
43+ 'https://www.sciencedirect.com/science/'
44+ 'article/abs/pii/S0009261497040141' ),
45+ ]
46+ for doi , url in data :
47+ assert (url == get_real_url_from_doi (doi ))
48+
2349
2450def test_find_doi_in_line ():
2551 test_data = [
0 commit comments