def test_empty_document(self): """Provide an empty Authentication For OPDS document to test default values. """ place = MockPlace() everywhere = place.everywhere(None) parsed = AuthDoc.from_string(None, "{}", place) # In the absence of specific information, it's assumed the # OPDS server is open to everyone. eq_(([everywhere], {}, {}), parsed.service_area) eq_(([everywhere], {}, {}), parsed.focus_area) eq_([parsed.PUBLIC_AUDIENCE], parsed.audiences) eq_(None, parsed.id) eq_(None, parsed.title) eq_(None, parsed.service_description) eq_(None, parsed.color_scheme) eq_(None, parsed.collection_size) eq_(None, parsed.public_key) eq_(None, parsed.website) eq_(False, parsed.online_registration) eq_(None, parsed.root) eq_([], parsed.links) eq_(None, parsed.logo) eq_(None, parsed.logo_link) eq_(False, parsed.anonymous_access)
def test_real_document(self): """Test an Authentication For OPDS document that demonstrates most of the features we're looking for. """ document = { "id": "http://library/authentication-for-opds-file", "title": "Ansonia Public Library", "links": [{ "rel": "logo", "href": "data:image/png;base64,some-image-data", "type": "image/png" }, { "rel": "alternate", "href": "http://ansonialibrary.org", "type": "text/html" }, { "rel": "register", "href": "http://example.com/get-a-card/", "type": "text/html" }, { "rel": "start", "href": "http://catalog.example.com/", "type": "text/html/" }, { "rel": "start", "href": "http://opds.example.com/", "type": "application/atom+xml;profile=opds-catalog" }], "service_description": "Serving Ansonia, CT", "color_scheme": "gold", "collection_size": { "eng": 100, "spa": 20 }, "public_key": "a public key", "features": { "disabled": [], "enabled": ["https://librarysimplified.org/rel/policy/reservations"] }, "authentication": [{ "type": "http://opds-spec.org/auth/basic", "description": "Log in with your library barcode", "inputs": { "login": { "keyboard": "Default" }, "password": { "keyboard": "Default" } }, "labels": { "login": "******", "password": "******" } }] } place = MockPlace() everywhere = place.everywhere(None) parsed = AuthDoc.from_dict(None, document, place) # Information about the OPDS server has been extracted from # JSON and put into the AuthenticationDocument object. eq_("http://library/authentication-for-opds-file", parsed.id) eq_("Ansonia Public Library", parsed.title) eq_("Serving Ansonia, CT", parsed.service_description) eq_("gold", parsed.color_scheme) eq_({"eng": 100, "spa": 20}, parsed.collection_size) eq_("a public key", parsed.public_key) eq_( { u'rel': 'alternate', u'href': u'http://ansonialibrary.org', u'type': u'text/html' }, parsed.website) eq_(True, parsed.online_registration) eq_( { "rel": "start", "href": "http://opds.example.com/", "type": "application/atom+xml;profile=opds-catalog" }, parsed.root) eq_("data:image/png;base64,some-image-data", parsed.logo) eq_(None, parsed.logo_link) eq_(False, parsed.anonymous_access)