Skip to content

Commit

Permalink
add testing for issn.org resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
richard-jones committed Mar 29, 2023
1 parent 99e71d1 commit e161f7a
Show file tree
Hide file tree
Showing 5 changed files with 725 additions and 19 deletions.
1 change: 1 addition & 0 deletions doajtest/fixtures/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
from .bibjson import BibJSONFixtureFactory
from .provenance import ProvenanceFixtureFactory
from .background import BackgroundFixtureFactory
from doajtest.fixtures.issn_org import IssnOrgFixtureFactory
9 changes: 9 additions & 0 deletions doajtest/fixtures/issn_org.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from copy import deepcopy
from portality.lib import paths

class IssnOrgFixtureFactory(object):
@classmethod
def web_page_body(cls):
source = paths.rel2abs(__file__, "../unit/resources/issn_org_web_page.html")
with open(source) as f:
return f.read()
33 changes: 14 additions & 19 deletions doajtest/unit/annotation_resources/test_issn_org.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from doajtest.helpers import DoajTestCase
from doajtest.fixtures import ApplicationFixtureFactory
from doajtest.fixtures import ApplicationFixtureFactory, IssnOrgFixtureFactory
from doajtest.mocks.annotation_resource_bundle_Resource import ResourceBundleResourceMockFactory

from portality.annotation.annotators.issn_active import ISSNActive
from portality import models
from portality.annotation.resource_bundle import Resource, ResourceBundle
from portality.annotation.resources.issn_org import ISSNOrg

import responses # mocks for the requests library

Expand All @@ -17,24 +18,18 @@ def tearDown(self):
super(TestISSNOrg, self).tearDown()

@responses.activate
def test_01_issn_fetch_fail(self):
Resource.fetch = ResourceBundleResourceMockFactory.fail_fetch()

issn_active = ISSNActive()

form = {
"pissn": "1234-5678",
"eissn": "9876-5432"
}

source = ApplicationFixtureFactory.make_application_source()
app = models.Application(**source)

annotations = models.Annotation()
def test_01_issn_fetch(self):
resources = ResourceBundle()
issn_org = ISSNOrg(resources)

rsp1 = responses.Response(
method="GET",
url=issn_org.reference_url("1234-5678"),
body=IssnOrgFixtureFactory.web_page_body()
)
responses.add(rsp1)

issn_active.annotate(form, app, annotations, resources, logger=lambda x: x)
data = issn_org.fetch("1234-5678")

assert len(annotations.annotations) == 2
for anno in annotations.annotations:
assert anno.get("advice") == issn_active.UNABLE_TO_ACCESS
assert data is not None
assert data.is_registered()

0 comments on commit e161f7a

Please sign in to comment.