77 validate_medrxiv ,
88 identifier_valid_for ,
99 validate_db_name ,
10+ infer_identifier_from_url ,
1011)
1112from mavedb .lib .validation .exceptions import ValidationError
1213from mavedb .lib .validation .constants .publication import valid_dbnames
@@ -22,6 +23,9 @@ def test_valid_biorxiv(self):
2223 def test_valid_medrxiv (self ):
2324 assert validate_publication ("20733333" ) == None
2425
26+ def test_valid_crossref (self ):
27+ assert validate_publication ("10.1101/1234" ) == None
28+
2529 def test_invalid_identifier (self ):
2630 with self .assertRaises (ValidationError ):
2731 assert validate_publication ("2074d44" )
@@ -74,41 +78,55 @@ def test_valid_pubmed(self):
7478 "PubMed" : True ,
7579 "bioRxiv" : False ,
7680 "medRxiv" : False ,
81+ "Crossref" : False ,
7782 }
7883
7984 def test_valid_biorxiv (self ):
8085 assert identifier_valid_for ("2022.12.12.207222" ) == {
8186 "PubMed" : False ,
8287 "bioRxiv" : True ,
8388 "medRxiv" : False ,
89+ "Crossref" : False ,
8490 }
8591
8692 def test_valid_medrxiv (self ):
8793 assert identifier_valid_for ("2022.12.12.20733333" ) == {
8894 "PubMed" : False ,
8995 "bioRxiv" : False ,
9096 "medRxiv" : True ,
97+ "Crossref" : False ,
9198 }
9299
93100 def test_valid_pubmed_biorxiv (self ):
94101 assert identifier_valid_for ("207222" ) == {
95102 "PubMed" : True ,
96103 "bioRxiv" : True ,
97104 "medRxiv" : False ,
105+ "Crossref" : False ,
98106 }
99107
100108 def test_valid_pubmed_medrxiv (self ):
101109 assert identifier_valid_for ("20733333" ) == {
102110 "PubMed" : True ,
103111 "bioRxiv" : False ,
104112 "medRxiv" : True ,
113+ "Crossref" : False ,
105114 }
106115
107116 def test_valid_pubmed_none (self ):
108117 assert identifier_valid_for ("invalid" ) == {
109118 "PubMed" : False ,
110119 "bioRxiv" : False ,
111120 "medRxiv" : False ,
121+ "Crossref" : False ,
122+ }
123+
124+ def test_valid_crossref (self ):
125+ assert identifier_valid_for ("10.1101/1234" ) == {
126+ "PubMed" : False ,
127+ "bioRxiv" : False ,
128+ "medRxiv" : False ,
129+ "Crossref" : True ,
112130 }
113131
114132
@@ -124,3 +142,30 @@ def test_empty_name(self):
124142 def test_invalid_name (self ):
125143 with self .assertRaises (ValidationError ):
126144 validate_db_name ("invalid db" )
145+
146+
147+ class TestInferIdentifierFromUrl (TestCase ):
148+ def test_doi_url (self ):
149+ assert infer_identifier_from_url ("http://www.dx.doi.org/10.1101/1234" ) == "10.1101/1234"
150+
151+ def test_biorxiv_url (self ):
152+ assert (
153+ infer_identifier_from_url ("https://www.biorxiv.org/content/10.1101/2024.04.26.591310" )
154+ == "2024.04.26.591310"
155+ )
156+
157+ def test_medrxiv_url (self ):
158+ assert (
159+ infer_identifier_from_url ("https://www.medrxiv.org/content/10.1101/2024.04.26.59131023" )
160+ == "2024.04.26.59131023"
161+ )
162+
163+ def test_pubmed_url (self ):
164+ assert infer_identifier_from_url ("https://pubmed.ncbi.nlm.nih.gov/24567513/" ) == "24567513"
165+ assert infer_identifier_from_url ("http://www.ncbi.nlm.nih.gov/pubmed/432" ) == "432"
166+
167+ def test_identifier_not_url (self ):
168+ assert infer_identifier_from_url ("29023" ) == "29023"
169+
170+ def test_url_not_accepted (self ):
171+ assert infer_identifier_from_url ("www.notaccepted.org/29023" ) == "www.notaccepted.org/29023"
0 commit comments