Skip to content

Commit 65b0adf

Browse files
authored
Merge pull request #73 from NOAA-GSL/feat/idsse-892/das-request-schema
Create general DAS request schema
2 parents 7d47879 + 2a80cce commit 65b0adf

File tree

8 files changed

+48
-31
lines changed

8 files changed

+48
-31
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"description": "Mechanism for making a DAS data request",
33
"allOf": [
4-
{"$ref": "source.json#/Source"}
4+
{"$ref": "data_request.json#/DataRequest"}
55
]
66
}

python/idsse_common/idsse/common/schema/das_data_retrieved.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"properties": {
4949
"request": {
5050
"allOf": [
51-
{"$ref": "source.json#/Source"}
51+
{"$ref": "data_request.json#/DataRequest"}
5252
]
5353
},
5454
"corrId": {"$ref": "corr_id.json#/CorrId"}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
{
22
"description": "Mechanism for making a request about what data is available",
3-
"allOf": [{"$ref": "available_data.json#/AvailableData"}]
3+
"allOf": [
4+
{"$ref": "info_request.json#/InfoRequest"}
5+
]
46
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"description": "Mechanism for making a DAS request, either an available or data request",
3+
"oneOf": [
4+
{
5+
"allOf": [
6+
{"$ref": "info_request.json#/InfoRequest"}
7+
]
8+
},
9+
{
10+
"allOf": [
11+
{"$ref": "data_request.json#/DataRequest"}
12+
]
13+
}
14+
]
15+
}

python/idsse_common/idsse/common/schema/source.json renamed to python/idsse_common/idsse/common/schema/data_request.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"Source": {
2+
"DataRequest": {
33
"description": "Mechanism for specifying an input source, typically for operator",
44
"oneOf": [
55
{"allOf": [{"$ref": "raw_data.json#/RawData"}]},

python/idsse_common/idsse/common/schema/available_data.json renamed to python/idsse_common/idsse/common/schema/info_request.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"AvailableIssue": {
2+
"IssueRequest": {
33
"description": "Mechanism for making a request regarding what issue is available",
44
"type": "object",
55
"properties": {
@@ -30,7 +30,7 @@
3030
]
3131
},
3232

33-
"AvailableValidLead": {
33+
"ValidLeadRequest": {
3434
"description": "Mechanism for making a request regarding what valid (or lead) is available",
3535
"type": "object",
3636
"properties": {
@@ -58,7 +58,7 @@
5858
]
5959
},
6060

61-
"AvailableField": {
61+
"FieldRequest": {
6262
"description": "Mechanism for making a request if a field is available",
6363
"type": "object",
6464
"properties": {
@@ -71,13 +71,13 @@
7171
]
7272
},
7373

74-
"AvailableData": {
74+
"InfoRequest": {
7575
"description": "Mechanism for making a request about what data is available",
7676
"type": "object",
7777
"oneOf": [
78-
{"$ref": "#/AvailableIssue"},
79-
{"$ref": "#/AvailableValidLead"},
80-
{"$ref": "#/AvailableField"}
78+
{"$ref": "#/IssueRequest"},
79+
{"$ref": "#/ValidLeadRequest"},
80+
{"$ref": "#/FieldRequest"}
8181
]
8282
}
8383
}

python/idsse_common/idsse/common/schema/operator.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
"sourceObj": {
1010
"type": "object",
1111
"properties": {
12-
"source": {"$ref": "source.json#/Source"},
12+
"source": {"$ref": "data_request.json#/DataRequest"},
1313
"sources":{
1414
"type": "array",
1515
"minItems": 2,
16-
"items": {"$ref": "source.json#/Source"}
16+
"items": {"$ref": "data_request.json#/DataRequest"}
1717
}
1818
},
1919
"oneOf": [

python/idsse_common/test/test_validate_das_schema.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121

2222
@fixture
23-
def available_data_validator() -> Validator:
24-
schema_name = 'das_available_data_schema'
23+
def info_request_validator() -> Validator:
24+
schema_name = 'das_info_request_schema'
2525
return get_validator(schema_name)
2626

2727

@@ -95,78 +95,78 @@ def das_data_message() -> dict:
9595

9696

9797
# tests
98-
def test_validate_das_issue_request(available_data_validator: Validator):
98+
def test_validate_das_issue_request(info_request_validator: Validator):
9999
message = {'sourceType': 'issue',
100100
'sourceObj': {'product': 'NBM.AWS.GRIB',
101101
'region': 'PUERTO_RICO',
102102
'field': 'TEMP',
103103
}}
104104
try:
105-
available_data_validator.validate(message)
105+
info_request_validator.validate(message)
106106
except ValidationError as exc:
107107
assert False, f'Validate message raised an exception {exc}'
108108

109109

110-
def test_validate_das_bad_issue_request(available_data_validator: Validator):
110+
def test_validate_das_bad_issue_request(info_request_validator: Validator):
111111
# message is missing 'region'
112112
message = {'sourceType': 'field',
113113
'sourceObj': {'product': 'NBM.AWS.GRIB',
114114
'field': 'TEMP',
115115
'valid': '2022-01-02T15:00:00.000Z'
116116
}}
117117
with raises(ValidationError):
118-
available_data_validator.validate(message)
118+
info_request_validator.validate(message)
119119

120120

121-
def test_validate_das_valid_request(available_data_validator: Validator):
121+
def test_validate_das_valid_request(info_request_validator: Validator):
122122
message = {'sourceType': 'valid',
123123
'sourceObj': {'product': 'NBM.AWS.GRIB',
124124
'region': 'PUERTO_RICO',
125125
'field': 'TEMP',
126126
'issue': '2022-01-02T12:00:00.000Z'
127127
}}
128128
try:
129-
available_data_validator.validate(message)
129+
info_request_validator.validate(message)
130130
except ValidationError as exc:
131131
assert False, f'Validate message raised an exception {exc}'
132132

133133

134-
def test_validate_das_bad_valid_request(available_data_validator: Validator):
134+
def test_validate_das_bad_valid_request(info_request_validator: Validator):
135135
# message is missing 'field'
136136
message = {'sourceType': 'valid',
137137
'sourceObj': {'product': 'NBM.AWS.GRIB',
138138
'region': 'PUERTO_RICO',
139139
'issue': '2022-01-02T12:00:00.000Z'
140140
}}
141141
with raises(ValidationError):
142-
available_data_validator.validate(message)
142+
info_request_validator.validate(message)
143143

144144

145-
def test_validate_das_lead_request(available_data_validator: Validator):
145+
def test_validate_das_lead_request(info_request_validator: Validator):
146146
message = {'sourceType': 'lead',
147147
'sourceObj': {'product': 'NBM.AWS.GRIB',
148148
'region': 'PUERTO_RICO',
149149
'field': 'TEMP',
150150
'issue': '2022-01-02T12:00:00.000Z'
151151
}}
152152
try:
153-
available_data_validator.validate(message)
153+
info_request_validator.validate(message)
154154
except ValidationError as exc:
155155
assert False, f'Validate message raised an exception {exc}'
156156

157157

158-
def test_validate_das_bad_lead_request(available_data_validator: Validator):
158+
def test_validate_das_bad_lead_request(info_request_validator: Validator):
159159
# message is missing 'product'
160160
message = {'sourceType': 'valid',
161161
'sourceObj': {'region': 'PUERTO_RICO',
162162
'field': 'TEMP',
163163
'issue': '2022-01-02T12:00:00.000Z'
164164
}}
165165
with raises(ValidationError):
166-
available_data_validator.validate(message)
166+
info_request_validator.validate(message)
167167

168168

169-
def test_validate_das_field_request(available_data_validator: Validator):
169+
def test_validate_das_field_request(info_request_validator: Validator):
170170
message = {'sourceType': 'field',
171171
'sourceObj': {'product': 'NBM.AWS.GRIB',
172172
'region': 'PUERTO_RICO',
@@ -175,12 +175,12 @@ def test_validate_das_field_request(available_data_validator: Validator):
175175
'valid': '2022-01-02T15:00:00.000Z'
176176
}}
177177
try:
178-
available_data_validator.validate(message)
178+
info_request_validator.validate(message)
179179
except ValidationError as exc:
180180
assert False, f'Validate message raised an exception {exc}'
181181

182182

183-
def test_validate_das_bad_field_request(available_data_validator: Validator):
183+
def test_validate_das_bad_field_request(info_request_validator: Validator):
184184
# message is missing 'issue'
185185
message = {'sourceType': 'field',
186186
'sourceObj': {'product': 'NBM.AWS.GRIB',
@@ -189,7 +189,7 @@ def test_validate_das_bad_field_request(available_data_validator: Validator):
189189
'valid': '2022-01-02T15:00:00.000Z'
190190
}}
191191
with raises(ValidationError):
192-
available_data_validator.validate(message)
192+
info_request_validator.validate(message)
193193

194194

195195
def test_validate_das_data_request(data_request_validator: Validator):

0 commit comments

Comments
 (0)