def test_04_detect_verify_type_error(self): # create an invalid pmid and assert it is a pmid pmid = PMIDPlugin() bjid = {"id" : "a;lkdsjfjdsajadskja", "type" : "pmid"} record = models.MessageObject(bid=bjid) with self.assertRaises(models.LookupException): pmid.type_detect_verify(record)
def test_07_canonicalise_error(self): pmid = PMIDPlugin() # create an invalid pmid and assert it is a pmid bjid = {"id" : "a;lkdsjfjdsajadskja", "type" : "pmid"} with self.assertRaises(model_exceptions.LookupException): pmid.canonicalise(bjid) bjid = {"key" : "value"} with self.assertRaises(model_exceptions.LookupException): pmid.canonicalise(bjid)
def test_03_detect_verify_type_ignores(self): pmid = PMIDPlugin() bjid = {"id" : "whatever", "type" : "doi"} pmid.type_detect_verify(bjid) assert bjid['type'] == "doi" bjid = {"key" : "value"} pmid.type_detect_verify(bjid) assert not bjid.has_key("type")
def test_02_detect_verify_type_not_pmids(self): #Test the various erroneous PMID possibilities, which will include: #- less than 1 and more than 8 digits #- random strings (i.e. not just digits) pmid = PMIDPlugin() # some random digits bjid = {'id' : 'qp23u4ehjkjewfiuwqr'} # random numbers and digits record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert not bjid.has_key("type") bjid = {'id' : 'qp23u4.10238765.jewfiuwqr'} # has an 8 digit substring in it # (therefore also has a 1,2..7-digit substring in it) record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert not bjid.has_key("type") # less than 1 and more than 8 digits bjid = {'id' : ''} # well, less than 1 digit doesn't exist # and letters are covered elsewhere... record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert not bjid.has_key("type") bjid = {'id' : '123456789'} record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert not bjid.has_key("type")
def test_05_canonicalise_real(self): pmid = PMIDPlugin() counter = 0 for d in CANONICAL.keys(): bjid = {'id' : d, 'type' : 'pmid'} pmid.canonicalise(bjid) assert bjid.has_key("canonical") assert bjid["canonical"] == CANONICAL[d] counter += 1 assert counter == len(CANONICAL.keys()) assert counter > 0
def test_01_detect_verify_type_real_pmids(self): pmid = PMIDPlugin() counter = 0 for d in PMIDS: bjid = {'id' : d} pmid.type_detect_verify(bjid) assert bjid.has_key("type") assert bjid["type"] == "pmid" counter += 1 assert counter == len(PMIDS) assert counter > 0
def test_12_provider_resolve_fail_doi(self): old_get = util.http_get util.http_get = get_doi_fail pmid = PMIDPlugin() record = {"identifier" : {"id" : "23175652", "type" : "pmid", "canonical" : "pmid:23175652"}} record = models.MessageObject(record=record) with self.assertRaises(plugin.PluginException): pmid.detect_provider(record) util.http_get = old_get
def test_01_detect_verify_type_real_pmids(self): pmid = PMIDPlugin() counter = 0 for d in PMIDS: bjid = {'id' : d} record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert bjid.has_key("type") assert bjid["type"] == "pmid" counter += 1 assert counter == len(PMIDS) assert counter > 0
def test_07_canonicalise_error(self): pmid = PMIDPlugin() # create an invalid pmid and assert it is a pmid bjid = {"id" : "a;lkdsjfjdsajadskja", "type" : "pmid"} record = models.MessageObject(bid=bjid) with self.assertRaises(models.LookupException): pmid.canonicalise(record) bjid = {"key" : "value"} record = models.MessageObject(record={"identifier" : bjid}) with self.assertRaises(models.LookupException): pmid.canonicalise(record)
def test_05_canonicalise_real(self): pmid = PMIDPlugin() counter = 0 for d in CANONICAL.keys(): bjid = {'id' : d, 'type' : 'pmid'} record = models.MessageObject(bid=bjid) pmid.canonicalise(record) assert bjid.has_key("canonical") assert bjid["canonical"] == CANONICAL[d] counter += 1 assert counter == len(CANONICAL.keys()) assert counter > 0
def test_03_detect_verify_type_ignores(self): pmid = PMIDPlugin() bjid = {"id" : "whatever", "type" : "doi"} record = models.MessageObject(bid=bjid) pmid.type_detect_verify(record) assert bjid['type'] == "doi" bjid = {"key" : "value"} record = models.MessageObject(record={"identifier" : bjid}) pmid.type_detect_verify(record) assert not bjid.has_key("type")
def test_10_provider_resolve_from_icon(self): old_get = requests.get requests.get = get_icon pmid = PMIDPlugin() record = {"identifier" : {"id" : "23175652", "type" : "pmid", "canonical" : "pmid:23175652"}} pmid.provider_resolver(record) assert "provider" in record assert "url" in record["provider"] assert record['provider']["url"][0] == "http://jb.asm.org/cgi/pmidlookup?view=long&pmid=23175652", record['provider']["url"][0] requests.get = old_get
def test_09_provider_resolve_doi(self): old_get = requests.get requests.get = get_doi pmid = PMIDPlugin() record = {"identifier" : {"id" : "23175652", "type" : "pmid", "canonical" : "pmid:23175652"}} pmid.provider_resolver(record) assert "provider" in record assert "url" in record["provider"] assert record['provider']["url"][0] == "http://jb.asm.org/content/195/3/502", record['provider']['url'] assert record["provider"]["doi"] == "doi:10.1128/JB.01321-12" requests.get = old_get
def test_11_provider_resolve_from_resources(self): old_get = requests.get requests.get = get_linkout pmid = PMIDPlugin() record = {"identifier" : {"id" : "1234567", "type" : "pmid", "canonical" : "pmid:1234567"}} pmid.provider_resolver(record) assert "provider" in record assert "url" in record["provider"] assert "http://www.nlm.nih.gov/medlineplus/menopause.html" in record["provider"]["url"], record["provider"]["url"] assert "http://toxnet.nlm.nih.gov/cgi-bin/sis/search/r?dbs+hsdb:@term+@rn+50-28-2" in record["provider"]["url"], record["provider"]["url"] assert len(record['provider']['url']) == 2 requests.get = old_get
def test_10_provider_resolve_from_icon(self): old_get = util.http_get util.http_get = get_icon pmid = PMIDPlugin() record = {"identifier" : {"id" : "23175652", "type" : "pmid", "canonical" : "pmid:23175652"}} record = models.MessageObject(record=record) pmid.detect_provider(record) record = record.record assert "provider" in record assert "url" in record["provider"] assert record['provider']["url"][0] == "http://jb.asm.org/cgi/pmidlookup?view=long&pmid=23175652", record['provider']["url"][0] util.http_get = old_get
def test_09_provider_resolve_doi(self): old_get = util.http_get util.http_get = get_doi pmid = PMIDPlugin() record = {"identifier" : {"id" : "23175652", "type" : "pmid", "canonical" : "pmid:23175652"}} record = models.MessageObject(record=record) pmid.detect_provider(record) record = record.record assert "provider" in record assert "url" in record["provider"] assert record['provider']["url"][0] == "http://jb.asm.org/content/195/3/502", record['provider']['url'] assert record["provider"]["doi"] == "doi:10.1128/JB.01321-12" util.http_get = old_get
def test_08_provider_resolve_not_relevant(self): pmid = PMIDPlugin() record = {} pmid.provider_resolver(record) assert len(record.keys()) == 0 record['identifier'] = {} pmid.provider_resolver(record) assert len(record['identifier'].keys()) == 0 record['identifier']['id'] = "123" record['identifier']['type'] = "doi" record['identifier']['canonical'] = "doi:123" pmid.provider_resolver(record) assert not "provider" in record record['identifier']['type'] = "pmid" del record['identifier']['canonical'] pmid.provider_resolver(record) assert not "provider" in record
def test_08_provider_resolve_not_relevant(self): pmid = PMIDPlugin() record = models.MessageObject() pmid.detect_provider(record) assert len(record.record.keys()) == 0 record.id = "123" record.identifier_type = "doi" record.canonical = "doi:123" pmid.detect_provider(record) assert not "provider" in record.record record.identifier_type = "pmid" record.canonical = None pmid.detect_provider(record) assert not "provider" in record.record
def test_06_canonicalise_ignore(self): pmid = PMIDPlugin() bjid = {"id" : "whatever", "type" : "doi"} record = models.MessageObject(bid=bjid) pmid.canonicalise(record) assert not bjid.has_key("canonical")
def test_06_canonicalise_ignore(self): pmid = PMIDPlugin() bjid = {"id" : "whatever", "type" : "doi"} pmid.canonicalise(bjid) assert not bjid.has_key("canonical")
def test_04_detect_verify_type_error(self): # create an invalid pmid and assert it is a pmid pmid = PMIDPlugin() bjid = {"id" : "a;lkdsjfjdsajadskja", "type" : "pmid"} with self.assertRaises(model_exceptions.LookupException): pmid.type_detect_verify(bjid)