Skip to content

Commit 94cbefd

Browse files
committed
add profiles_path variable to metadata api and service tests
1 parent 0285235 commit 94cbefd

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

tests/test_api_routes.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,24 +141,26 @@ def test_validate_fails_missing_elements(client: FlaskClient, crate_id: str, pay
141141

142142
# Test POST API: /v1/ro_crates/validate_metadata
143143

144+
# TODO: Write tests for profiles_path environment variable. This will require a refactoring of the create_app function.
144145
@pytest.mark.parametrize(
145-
"payload, status_code, response_json",
146+
"payload, status_code, response_json, profiles_path",
146147
[
147148
(
148149
{
149150
"crate_json": '{"@context": "https://w3id.org/ro/crate/1.1/context"}',
150151
"profile_name": "default"
151-
}, 200, {"status": "success"}
152+
}, 200, {"status": "success"}, None
152153
),
153154
(
154155
{
155156
"crate_json": '{"@context": "https://w3id.org/ro/crate/1.1/context"}',
156-
}, 200, {"status": "success"}
157+
}, 200, {"status": "success"}, None
157158
),
158159
],
159160
ids=["success_with_all_fields", "success_without_profile_name"]
160161
)
161-
def test_validate_metadata_success(client: FlaskClient, payload: dict, status_code: int, response_json: dict):
162+
def test_validate_metadata_success(client: FlaskClient, payload: dict, status_code: int,
163+
response_json: dict, profiles_path: str):
162164
with patch("app.ro_crates.routes.post_routes.queue_ro_crate_metadata_validation_task") as mock_queue:
163165
mock_queue.return_value = (response_json, status_code)
164166

@@ -167,7 +169,7 @@ def test_validate_metadata_success(client: FlaskClient, payload: dict, status_co
167169
crate_json = payload["crate_json"] if "crate_json" in payload else None
168170
profile_name = payload["profile_name"] if "profile_name" in payload else None
169171

170-
mock_queue.assert_called_once_with(crate_json, profile_name)
172+
mock_queue.assert_called_once_with(crate_json, profile_name, profiles_path=profiles_path)
171173
assert response.status_code == status_code
172174
assert response.json == response_json
173175

tests/test_services.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,32 +141,32 @@ def test_queue_ro_crate_validation_task_failure(
141141
# Test function: queue_ro_crate_metadata_validation_task
142142

143143
@pytest.mark.parametrize(
144-
"crate_json, profile, webhook, status_code, return_value, response_json, delay_side_effect",
144+
"crate_json, profile, webhook, status_code, return_value, response_json, delay_side_effect, profiles_path",
145145
[
146146
(
147147
'{"@context": "https://w3id.org/ro/crate/1.1/context"}',
148148
"default", "http://webhook",
149149
202, None, {"message": "Validation in progress"},
150-
None
150+
None, None
151151
),
152152
(
153153
'{"@context": "https://w3id.org/ro/crate/1.1/context"}',
154154
"default", None,
155155
200, {"status": "ok"}, {"result": {"status": "ok"}},
156-
None
156+
None, None
157157
),
158158
(
159159
'{"@context": "https://w3id.org/ro/crate/1.1/context"}',
160160
"default", "http://webhook",
161161
500, None, {"error": "Celery error"},
162-
Exception("Celery error")
162+
Exception("Celery error"), None
163163
),
164164
],
165165
ids=["success_with_webhook", "success_without_webhook", "failure_celery_error"]
166166
)
167167
def test_queue_metadata(flask_app, crate_json: dict, profile: str, webhook: str,
168168
status_code: int, return_value: dict, response_json: dict,
169-
delay_side_effect: Exception):
169+
delay_side_effect: Exception, profiles_path: str):
170170
with patch("app.services.validation_service.process_validation_task_by_metadata.delay",
171171
side_effect=delay_side_effect) as mock_delay:
172172
mock_result = MagicMock()
@@ -175,9 +175,9 @@ def test_queue_metadata(flask_app, crate_json: dict, profile: str, webhook: str,
175175
if delay_side_effect is None:
176176
mock_delay.return_value = mock_result
177177

178-
response, status = queue_ro_crate_metadata_validation_task(crate_json, profile, webhook)
178+
response, status = queue_ro_crate_metadata_validation_task(crate_json, profile, webhook, profiles_path)
179179

180-
mock_delay.assert_called_once_with(crate_json, profile, webhook)
180+
mock_delay.assert_called_once_with(crate_json, profile, webhook, profiles_path)
181181
assert status == status_code
182182
assert response.json == response_json
183183

0 commit comments

Comments
 (0)