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_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.detect_provider(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.detect_provider(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.detect_provider(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_08_provider_resolve_not_relevant(self):
     pmid = PMIDPlugin()
     record = {}
     
     pmid.detect_provider(record)
     assert len(record.keys()) == 0
     
     record['identifier'] = {}
     pmid.detect_provider(record)
     assert len(record['identifier'].keys()) == 0
     
     record['identifier']['id'] = "123"
     record['identifier']['type'] = "doi"
     record['identifier']['canonical'] = "doi:123"
     pmid.detect_provider(record)
     assert not "provider" in record
     
     record['identifier']['type'] = "pmid"
     del record['identifier']['canonical']
     pmid.detect_provider(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