ualbertalib / jupiter

Jupiter is a University of Alberta Libraries-based initiative to create a sustainable and extensible digital asset management system. This is phase 2 (Digitization).
https://era.library.ualberta.ca/
MIT License
23 stars 10 forks source link

[Oaisys] Resolve final testing issues #1888

Closed ConnorSheremeta closed 1 year ago

ConnorSheremeta commented 3 years ago

Perl validator found these issues with oaisys. These are edge case error issues (first can be ignored becasue the baseURL will match once on prod.)

RUNNING VALIDATION FOR https://era-app-stg-1.library.ualberta.ca/oai

Checking Identify response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=Identify GET PASS: Administrator email address is 'eraadmi@ualberta.ca' PASS: Correctly reports OAI-PMH protocol version 2.0 FAIL: baseURL supplied 'https://era-app-stg-1.library.ualberta.ca/oai' does not match the baseURL in the Identify response 'https://era.library.ualberta.ca/oai'. The baseURL you enter must EXACTLY match the baseURL returned in the Identify response. It must match in case (http://Wibble.org/ does not match http://wibble.org/) and include any trailing slashes etc. PASS: Datestamp granularity is 'seconds' PASS: Extracted earliestDatestamp 2018-06-22T13:06:50Z

Checking ListSets response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListSets GET PASS: responseDate has correct format: 2020-09-21T16:28:39Z PASS: Extracted 150 set names: { b41cdbfd-6af2-4a13-8ba6-59725565d445:adbab43d-b35d-4493-a3a5-bd228863cc36 560f321f-a8c7-4884-adb3-326433a61688:17bd1d5d-7d41-40ed-8ea2-97c2ec63896b f7766168-d234-491a-b27c-2c4a5eecbc99:d7e84f98-9931-435b-89fd-80f713d5ca47 ... }, will use setSpec &set=b41cdbfd-6af2-4a13-8ba6-59725565d445:adbab43d-b35d-4493-a3a5-bd228863cc36 in tests

Checking ListIdentifiers response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListIdentifiers&metadataPrefix=oai_dc&set=b41cdbfd-6af2-4a13-8ba6-59725565d445:adbab43d-b35d-4493-a3a5-bd228863cc36 GET PASS: responseDate has correct format: 2020-09-21T16:28:40Z NOTE: Tried empty set, will look for set with items... NOTE: Trying set &set=560f321f-a8c7-4884-adb3-326433a61688:17bd1d5d-7d41-40ed-8ea2-97c2ec63896b REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListIdentifiers&metadataPrefix=oai_dc&set=560f321f-a8c7-4884-adb3-326433a61688:17bd1d5d-7d41-40ed-8ea2-97c2ec63896b GET PASS: responseDate has correct format: 2020-09-21T16:28:41Z PASS: Good ListIdentifiers response, extracted id 'oai:era.library.ualberta.ca:2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e' for use in future tests.

Checking ListMetadataFormats response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListMetadataFormats&identifier=oai%3Aera%2Elibrary%2Eualberta%2Eca%3A2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e GET PASS: responseDate has correct format: 2020-09-21T16:28:42Z PASS: Good ListMetadataFormats response, includes oai_dc PASS: Data provider supports oai_dc metadataPrefix

Checking GetRecord response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=GetRecord&identifier=oai%3Aera%2Elibrary%2Eualberta%2Eca%3A2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e&metadataPrefix=oai_dc GET PASS: responseDate has correct format: 2020-09-21T16:28:43Z PASS: Datestamp in GetRecord response (2020-09-03T19:06:35Z) has the correct form for seconds granularity. PASS: Datestamp in GetRecord response (2020-09-03T19:06:35Z) matched the seconds granularity specified in the Identify response. PASS: Expected setSpec was returned in the response

Checking ListRecords response

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&from=2020-09-03T19:06:35Z&until=2020-09-03T19:06:35Z&metadataPrefix=oai_dc GET PASS: responseDate has correct format: 2020-09-21T16:28:44Z PASS: Response is well formed PASS: ListRecords response correctly included record with identifier oai:era.library.ualberta.ca:2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e

Checking exception handling (errors)

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?junk GET PASS: Error response correctly includes error code 'badVerb' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=junk GET PASS: Error response correctly includes error code 'badVerb' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=GetRecord&metadataPrefix=oai_dc GET PASS: Error response correctly includes error code 'badArgument' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=GetRecord&identifier=oai:era.library.ualberta.ca:2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e GET PASS: Error response correctly includes error code 'badArgument' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=GetRecord&identifier=invalid"id&metadataPrefix=oai_dc GET PASS: Error response correctly includes error code 'idDoesNotExist' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListIdentifiers&until=junk GET PASS: Error response correctly includes error code 'badArgument' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListIdentifiers&from=junk GET PASS: Error response correctly includes error code 'badArgument' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListIdentifiers&resumptionToken=junk&until=2000-02-05 GET PASS: Error response correctly includes error code 'badResumptionToken' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc&from=junk GET WARN: Bad HTTP status code from server: 500 FAIL: Can't parse malformed response. REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&resumptionToken=junk GET PASS: Error response correctly includes error code 'badResumptionToken' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc&resumptionToken=junk&until=1990-01-10 GET PASS: Error response correctly includes error code 'badResumptionToken' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc&until=junk GET FAIL: Exception/error response did not contain error code 'badArgument' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords GET PASS: Error response correctly includes error code 'badArgument' WARN: Only 11 out of 13 error requests properly handled

Checking for version 2.0 specific exceptions

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc&from=2002-02-05&until=2002-02-06T05:35:00Z GET FAIL: Error code badArgument not found in response but should be given to the request: verb=ListRecords&metadataPrefix=oai_dc&from=2002-02-05&until=2002-02-06T05:35:00Z The request has different granularities for the from and until parameters. REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc&until=2017-06-22T13:06:50Z GET PASS: Error response correctly includes error code 'noRecordsMatch'

Checking that HTTP POST requests are handled correctly

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai POST verb:Identify FAIL: POST test 1 was unsuccessful. Server returned HTTP Status: '422 Unprocessable Entity' REQUEST: https://era-app-stg-1.library.ualberta.ca/oai POST identifier:oai:era.library.ualberta.ca:2cb91317-d9e3-4b6a-b3a1-7f96aa812a6e metadataPrefix:oai_dc verb:GetRecord FAIL: POST test 2 was unsuccessful. Server returned HTTP Status: '422 Unprocessable Entity'

Checking for correct use of resumptionToken (if used)

REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&metadataPrefix=oai_dc GET NOTE: Got resumptionToken vOT6kOeC8cqfv1zljKAHbj REQUEST: https://era-app-stg-1.library.ualberta.ca/oai?verb=ListRecords&resumptionToken=vOT6kOeC8cqfv1zljKAHbj GET PASS: Resumption tokens appear to work

Validation status of data provider https://era-app-stg-1.library.ualberta.ca/oai is FAILED

Please note that this ticket also includes removing the ore part of the list metadata formats response as it is not supported.

This can be split up into multiple tickets if needed.

pgwillia commented 1 year ago

@ConnorSheremeta will double check and close. We think it's done.