From 686f675764f7ed46cf7dd008b385df346a3d1ff8 Mon Sep 17 00:00:00 2001 From: Geary-Layne Date: Mon, 26 Aug 2024 14:42:34 -0600 Subject: [PATCH 1/3] made combined schema for either info or data request from DAS --- .../idsse/common/schema/das_available_data_schema.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/idsse_common/idsse/common/schema/das_available_data_schema.json b/python/idsse_common/idsse/common/schema/das_available_data_schema.json index 32c83753..9d0008b6 100644 --- a/python/idsse_common/idsse/common/schema/das_available_data_schema.json +++ b/python/idsse_common/idsse/common/schema/das_available_data_schema.json @@ -1,4 +1,6 @@ { "description": "Mechanism for making a request about what data is available", - "allOf": [{"$ref": "available_data.json#/AvailableData"}] + "allOf": [ + {"$ref": "available_data.json#/AvailableData"} + ] } \ No newline at end of file From 7a30ea3b801b314d751441a7ba356ebebdd98b1f Mon Sep 17 00:00:00 2001 From: Geary-Layne Date: Tue, 27 Aug 2024 14:27:51 -0600 Subject: [PATCH 2/3] renamed schemas to align with nomenclature --- .../schema/das_data_request_schema.json | 2 +- .../common/schema/das_data_retrieved.json | 2 +- ...hema.json => das_info_request_schema.json} | 2 +- .../common/schema/das_request_schema.json | 15 ++++++++ .../schema/{source.json => data_request.json} | 2 +- ...{available_data.json => info_request.json} | 14 ++++---- .../idsse/common/schema/operator.json | 4 +-- .../test/test_validate_das_schema.py | 36 +++++++++---------- 8 files changed, 46 insertions(+), 31 deletions(-) rename python/idsse_common/idsse/common/schema/{das_available_data_schema.json => das_info_request_schema.json} (65%) create mode 100644 python/idsse_common/idsse/common/schema/das_request_schema.json rename python/idsse_common/idsse/common/schema/{source.json => data_request.json} (92%) rename python/idsse_common/idsse/common/schema/{available_data.json => info_request.json} (91%) diff --git a/python/idsse_common/idsse/common/schema/das_data_request_schema.json b/python/idsse_common/idsse/common/schema/das_data_request_schema.json index 1961c59a..60c1edd3 100644 --- a/python/idsse_common/idsse/common/schema/das_data_request_schema.json +++ b/python/idsse_common/idsse/common/schema/das_data_request_schema.json @@ -1,6 +1,6 @@ { "description": "Mechanism for making a DAS data request", "allOf": [ - {"$ref": "source.json#/Source"} + {"$ref": "data_request.json#/DataRequest"} ] } \ No newline at end of file diff --git a/python/idsse_common/idsse/common/schema/das_data_retrieved.json b/python/idsse_common/idsse/common/schema/das_data_retrieved.json index 9c51794d..c96766bb 100644 --- a/python/idsse_common/idsse/common/schema/das_data_retrieved.json +++ b/python/idsse_common/idsse/common/schema/das_data_retrieved.json @@ -48,7 +48,7 @@ "properties": { "request": { "allOf": [ - {"$ref": "source.json#/Source"} + {"$ref": "data_request.json#/DataRequest"} ] }, "corrId": {"$ref": "corr_id.json#/CorrId"} diff --git a/python/idsse_common/idsse/common/schema/das_available_data_schema.json b/python/idsse_common/idsse/common/schema/das_info_request_schema.json similarity index 65% rename from python/idsse_common/idsse/common/schema/das_available_data_schema.json rename to python/idsse_common/idsse/common/schema/das_info_request_schema.json index 9d0008b6..a5853529 100644 --- a/python/idsse_common/idsse/common/schema/das_available_data_schema.json +++ b/python/idsse_common/idsse/common/schema/das_info_request_schema.json @@ -1,6 +1,6 @@ { "description": "Mechanism for making a request about what data is available", "allOf": [ - {"$ref": "available_data.json#/AvailableData"} + {"$ref": "info_request.json#/InfoRequest"} ] } \ No newline at end of file diff --git a/python/idsse_common/idsse/common/schema/das_request_schema.json b/python/idsse_common/idsse/common/schema/das_request_schema.json new file mode 100644 index 00000000..487e04d6 --- /dev/null +++ b/python/idsse_common/idsse/common/schema/das_request_schema.json @@ -0,0 +1,15 @@ +{ + "description": "Mechanism for making a DAS request, either an available or data request", + "oneOf": [ + { + "allOf": [ + {"$ref": "info_request.json#/InfoRequest"} + ] + }, + { + "allOf": [ + {"$ref": "data_request.json#/DataRequest"} + ] + } + ] +} \ No newline at end of file diff --git a/python/idsse_common/idsse/common/schema/source.json b/python/idsse_common/idsse/common/schema/data_request.json similarity index 92% rename from python/idsse_common/idsse/common/schema/source.json rename to python/idsse_common/idsse/common/schema/data_request.json index 790c9517..7a60a542 100644 --- a/python/idsse_common/idsse/common/schema/source.json +++ b/python/idsse_common/idsse/common/schema/data_request.json @@ -1,5 +1,5 @@ { - "Source": { + "DataRequest": { "description": "Mechanism for specifying an input source, typically for operator", "oneOf": [ {"allOf": [{"$ref": "raw_data.json#/RawData"}]}, diff --git a/python/idsse_common/idsse/common/schema/available_data.json b/python/idsse_common/idsse/common/schema/info_request.json similarity index 91% rename from python/idsse_common/idsse/common/schema/available_data.json rename to python/idsse_common/idsse/common/schema/info_request.json index a2e43a55..fc06a569 100644 --- a/python/idsse_common/idsse/common/schema/available_data.json +++ b/python/idsse_common/idsse/common/schema/info_request.json @@ -1,5 +1,5 @@ { - "AvailableIssue": { + "IssueRequest": { "description": "Mechanism for making a request regarding what issue is available", "type": "object", "properties": { @@ -30,7 +30,7 @@ ] }, - "AvailableValidLead": { + "ValidLeadRequest": { "description": "Mechanism for making a request regarding what valid (or lead) is available", "type": "object", "properties": { @@ -58,7 +58,7 @@ ] }, - "AvailableField": { + "FieldRequest": { "description": "Mechanism for making a request if a field is available", "type": "object", "properties": { @@ -71,13 +71,13 @@ ] }, - "AvailableData": { + "InfoRequest": { "description": "Mechanism for making a request about what data is available", "type": "object", "oneOf": [ - {"$ref": "#/AvailableIssue"}, - {"$ref": "#/AvailableValidLead"}, - {"$ref": "#/AvailableField"} + {"$ref": "#/IssueRequest"}, + {"$ref": "#/ValidLeadRequest"}, + {"$ref": "#/FieldRequest"} ] } } \ No newline at end of file diff --git a/python/idsse_common/idsse/common/schema/operator.json b/python/idsse_common/idsse/common/schema/operator.json index ea5c40b0..4a359c21 100644 --- a/python/idsse_common/idsse/common/schema/operator.json +++ b/python/idsse_common/idsse/common/schema/operator.json @@ -9,11 +9,11 @@ "sourceObj": { "type": "object", "properties": { - "source": {"$ref": "source.json#/Source"}, + "source": {"$ref": "data_request.json#/DataRequest"}, "sources":{ "type": "array", "minItems": 2, - "items": {"$ref": "source.json#/Source"} + "items": {"$ref": "data_request.json#/DataRequest"} } }, "oneOf": [ diff --git a/python/idsse_common/test/test_validate_das_schema.py b/python/idsse_common/test/test_validate_das_schema.py index 0dce7a41..2bfd44a8 100644 --- a/python/idsse_common/test/test_validate_das_schema.py +++ b/python/idsse_common/test/test_validate_das_schema.py @@ -20,8 +20,8 @@ @fixture -def available_data_validator() -> Validator: - schema_name = 'das_available_data_schema' +def das_info_request() -> Validator: + schema_name = 'das_info_request_schema' return get_validator(schema_name) @@ -95,19 +95,19 @@ def das_data_message() -> dict: # tests -def test_validate_das_issue_request(available_data_validator: Validator): +def test_validate_das_issue_request(das_info_request: Validator): message = {'sourceType': 'issue', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', 'field': 'TEMP', }} try: - available_data_validator.validate(message) + das_info_request.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_issue_request(available_data_validator: Validator): +def test_validate_das_bad_issue_request(das_info_request: Validator): # message is missing 'region' message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -115,10 +115,10 @@ def test_validate_das_bad_issue_request(available_data_validator: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} with raises(ValidationError): - available_data_validator.validate(message) + das_info_request.validate(message) -def test_validate_das_valid_request(available_data_validator: Validator): +def test_validate_das_valid_request(das_info_request: Validator): message = {'sourceType': 'valid', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -126,12 +126,12 @@ def test_validate_das_valid_request(available_data_validator: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} try: - available_data_validator.validate(message) + das_info_request.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_valid_request(available_data_validator: Validator): +def test_validate_das_bad_valid_request(das_info_request: Validator): # message is missing 'field' message = {'sourceType': 'valid', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -139,10 +139,10 @@ def test_validate_das_bad_valid_request(available_data_validator: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} with raises(ValidationError): - available_data_validator.validate(message) + das_info_request.validate(message) -def test_validate_das_lead_request(available_data_validator: Validator): +def test_validate_das_lead_request(das_info_request: Validator): message = {'sourceType': 'lead', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -150,12 +150,12 @@ def test_validate_das_lead_request(available_data_validator: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} try: - available_data_validator.validate(message) + das_info_request.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_lead_request(available_data_validator: Validator): +def test_validate_das_bad_lead_request(das_info_request: Validator): # message is missing 'product' message = {'sourceType': 'valid', 'sourceObj': {'region': 'PUERTO_RICO', @@ -163,10 +163,10 @@ def test_validate_das_bad_lead_request(available_data_validator: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} with raises(ValidationError): - available_data_validator.validate(message) + das_info_request.validate(message) -def test_validate_das_field_request(available_data_validator: Validator): +def test_validate_das_field_request(das_info_request: Validator): message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -175,12 +175,12 @@ def test_validate_das_field_request(available_data_validator: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} try: - available_data_validator.validate(message) + das_info_request.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_field_request(available_data_validator: Validator): +def test_validate_das_bad_field_request(das_info_request: Validator): # message is missing 'issue' message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -189,7 +189,7 @@ def test_validate_das_bad_field_request(available_data_validator: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} with raises(ValidationError): - available_data_validator.validate(message) + das_info_request.validate(message) def test_validate_das_data_request(data_request_validator: Validator): From 2a80cced4589e3d6b2062d2f7db5e4072bb7d9c8 Mon Sep 17 00:00:00 2001 From: Geary-Layne Date: Wed, 28 Aug 2024 05:55:19 -0600 Subject: [PATCH 3/3] renamed fixture --- .../test/test_validate_das_schema.py | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/python/idsse_common/test/test_validate_das_schema.py b/python/idsse_common/test/test_validate_das_schema.py index 2bfd44a8..aec6d95d 100644 --- a/python/idsse_common/test/test_validate_das_schema.py +++ b/python/idsse_common/test/test_validate_das_schema.py @@ -20,7 +20,7 @@ @fixture -def das_info_request() -> Validator: +def info_request_validator() -> Validator: schema_name = 'das_info_request_schema' return get_validator(schema_name) @@ -95,19 +95,19 @@ def das_data_message() -> dict: # tests -def test_validate_das_issue_request(das_info_request: Validator): +def test_validate_das_issue_request(info_request_validator: Validator): message = {'sourceType': 'issue', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', 'field': 'TEMP', }} try: - das_info_request.validate(message) + info_request_validator.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_issue_request(das_info_request: Validator): +def test_validate_das_bad_issue_request(info_request_validator: Validator): # message is missing 'region' message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -115,10 +115,10 @@ def test_validate_das_bad_issue_request(das_info_request: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} with raises(ValidationError): - das_info_request.validate(message) + info_request_validator.validate(message) -def test_validate_das_valid_request(das_info_request: Validator): +def test_validate_das_valid_request(info_request_validator: Validator): message = {'sourceType': 'valid', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -126,12 +126,12 @@ def test_validate_das_valid_request(das_info_request: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} try: - das_info_request.validate(message) + info_request_validator.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_valid_request(das_info_request: Validator): +def test_validate_das_bad_valid_request(info_request_validator: Validator): # message is missing 'field' message = {'sourceType': 'valid', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -139,10 +139,10 @@ def test_validate_das_bad_valid_request(das_info_request: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} with raises(ValidationError): - das_info_request.validate(message) + info_request_validator.validate(message) -def test_validate_das_lead_request(das_info_request: Validator): +def test_validate_das_lead_request(info_request_validator: Validator): message = {'sourceType': 'lead', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -150,12 +150,12 @@ def test_validate_das_lead_request(das_info_request: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} try: - das_info_request.validate(message) + info_request_validator.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_lead_request(das_info_request: Validator): +def test_validate_das_bad_lead_request(info_request_validator: Validator): # message is missing 'product' message = {'sourceType': 'valid', 'sourceObj': {'region': 'PUERTO_RICO', @@ -163,10 +163,10 @@ def test_validate_das_bad_lead_request(das_info_request: Validator): 'issue': '2022-01-02T12:00:00.000Z' }} with raises(ValidationError): - das_info_request.validate(message) + info_request_validator.validate(message) -def test_validate_das_field_request(das_info_request: Validator): +def test_validate_das_field_request(info_request_validator: Validator): message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', 'region': 'PUERTO_RICO', @@ -175,12 +175,12 @@ def test_validate_das_field_request(das_info_request: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} try: - das_info_request.validate(message) + info_request_validator.validate(message) except ValidationError as exc: assert False, f'Validate message raised an exception {exc}' -def test_validate_das_bad_field_request(das_info_request: Validator): +def test_validate_das_bad_field_request(info_request_validator: Validator): # message is missing 'issue' message = {'sourceType': 'field', 'sourceObj': {'product': 'NBM.AWS.GRIB', @@ -189,7 +189,7 @@ def test_validate_das_bad_field_request(das_info_request: Validator): 'valid': '2022-01-02T15:00:00.000Z' }} with raises(ValidationError): - das_info_request.validate(message) + info_request_validator.validate(message) def test_validate_das_data_request(data_request_validator: Validator):