openownership / lib-cove-bods

Check that your data complies with the Beneficial Ownership Data Standard (BODS) using our install our data review library to analyse files via your command line interface
https://datareview.openownership.org/
Other
1 stars 0 forks source link

Additional check: hasPublicListing must exist and be true in certain conditions #81

Closed kd-ods closed 3 months ago

kd-ods commented 2 years ago

Check: If either of the PublicListing.companyFilingsURLs or PublicListing.securitiesListings arrays is non-empty then hasPublicListing should be true.

Error message: "hasPublicListing does not exist or is false. Information has been provided under companyFilingsURLs or securitiesListings so hasPublicListing must be true."

odscjames commented 2 years ago

Should the reverse be true?

kd-ods commented 2 years ago

No

odscjames commented 2 years ago

This looks to be new, so I'm assuming only applies in 0.3+

StephenAbbott commented 2 years ago

Correct, @odscjames. hasPublicListing is a new optional field in v0.3 so only applies in 0.3+

odscjames commented 2 years ago

Had to tweak to "This Entity Statement hasPublicListing that does not exist or is false. Information has been provided under companyFilingsURLs or securitiesListings so hasPublicListing must be true."

kd-ods commented 2 years ago

@odscjames this would read better as "In this Entity Statement, hasPublicListing does not exist or is false...."

Blueskies00 commented 2 years ago

Tests: https://docs.google.com/spreadsheets/d/1tKNhw9BqFi5NVVix1PpIIfDGXO5yUpFfCKpVrpZVADI/edit#gid=1978293582

  1. hasPublicListing = TRUE AND all other publicListing fields complete Expected result: No errors. Actual result: No errors. Comments: Test: PASSED ACTIONS: None.
  2. hasPublicListing = FALSE AND all other publicListing fields complete (including valid MIC) Expected result: Error - hasPublicListing does not exist or is false. Actual result: Additional check - "This Entity Statement hasPublicListing that does not exist or is false. Information has been provided under companyFilingsURLs or securitiesListings so hasPublicListing must be true." Comments: Test: PASSED ACTIONS: None.
  3. hasPublicListing = null AND some other publicListing fields complete (missing Operator MIC). Expected result: Error - hasPublicListing does not exist or is false. Error - relating to MIC codes, see other ticket. Actual result: Validation error - "publicListing/hasPublicListing is missing but required. Check that the field is included and correctly spelled." Additional check - "This Entity Statement hasPublicListing that does not exist or is false. Information has been provided under companyFilingsURLs or securitiesListings so hasPublicListing must be true." Additional check: "This Entity Statement has a security listing where marketIdentifierCode is set but operatingMarketIdentifierCode is not set." Comments: When hasPublicListing is null, it triggers both a validation error and an additional check. Test: PASSED ACTIONS: None.
  4. hasPublicListing = FALSE AND some other publicListing fields complete (erroneous values, identifier scheme missing, ticker missing). Expected result: Error - hasPublicListing does not exist or is false. Error - ticker missing. Error - relating to MIC codes, see other ticket. Actual result: Validation Error - "publicListing/securitiesListings/0/security/ticker is missing but required within security. Check that the field is included and correctly spelled." Additional check - "This Entity Statement hasPublicListing that does not exist or is false. Information has been provided under companyFilingsURLs or securitiesListings so hasPublicListing must be true." Comments: Test: PASSED ACTIONS: None.
  5. hasPublicListing = TRUE AND no other details completed. Expected result: Error - other details missing. Actual result: Error: "securitiesListings is missing but required. Check that the field is included and correctly spelled." Comments: Test: PASSED ACTIONS: None.