Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions tests/smoke/test_hydrofabric_smoke.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
"""Smoke tests for the hydrofabric endpoint against a deployed API."""

import os

import pytest
import requests

API_BASE_URL = os.environ.get("API_BASE_URL")

pytestmark = pytest.mark.skipif(not API_BASE_URL, reason="API_BASE_URL environment variable not set")


def test_gage_id_conus_nhf():
"""Verify gage_id request returns a gpkg for CONUS NHF."""
url = f"{API_BASE_URL}/v1/hydrofabric/01010000/gpkg?id_type=gage_id&domain=CONUS&source=nhf"

response = requests.get(url, timeout=120)
assert response.status_code == 200, f"Request failed: {response.status_code} - {response.text}"
assert len(response.content) > 0, "Response body is empty"


def test_gage_id_conus_hf():
"""Verify gage_id request returns a gpkg for CONUS HF v2.2."""
url = f"{API_BASE_URL}/v1/hydrofabric/01010000/gpkg?id_type=gage_id&domain=CONUS&source=hf"

response = requests.get(url, timeout=60)
assert response.status_code == 200, f"Request failed: {response.status_code} - {response.text}"
assert len(response.content) > 0, "Response body is empty"
30 changes: 24 additions & 6 deletions tests/smoke/test_parameter_metadata_smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,9 @@
]


def test_all_valid_modules_return_no_error():
"""Verify that all valid modules return without an error message."""
modules_param = "&".join([f"modules={m}" for m in ALL_MODULES])
url = f"{API_BASE_URL}/v1/modules/parameter_metadata/?{modules_param}"

response = requests.get(url, timeout=30)
def _assert_all_modules_no_error(url):
"""Helper to verify all modules in a response return without error."""
response = requests.get(url, timeout=120)
assert response.status_code == 200, f"Request failed: {response.status_code}"

data = response.json()
Expand All @@ -47,6 +44,27 @@ def test_all_valid_modules_return_no_error():
assert len(errors) == 0, f"Found {len(errors)} module error(s):\n" + "\n".join(errors)


def test_all_valid_modules_return_no_error():
"""Verify that all valid modules return without an error message."""
modules_param = "&".join([f"modules={m}" for m in ALL_MODULES])
url = f"{API_BASE_URL}/v1/modules/parameter_metadata/?{modules_param}"
_assert_all_modules_no_error(url)


def test_all_valid_modules_conus_nhf():
"""Verify all modules return without error for CONUS NHF."""
modules_param = "&".join([f"modules={m}" for m in ALL_MODULES])
url = f"{API_BASE_URL}/v1/modules/parameter_metadata/?{modules_param}&gage_id=01010000&domain=CONUS&source=nhf"
_assert_all_modules_no_error(url)


def test_all_valid_modules_conus_hf():
"""Verify all modules return without error for CONUS HF v2.2."""
modules_param = "&".join([f"modules={m}" for m in ALL_MODULES])
url = f"{API_BASE_URL}/v1/modules/parameter_metadata/?{modules_param}&gage_id=01010000&domain=CONUS&source=hf"
_assert_all_modules_no_error(url)


def test_invalid_module_returns_error():
"""Verify that a bogus module name returns an error message."""
url = f"{API_BASE_URL}/v1/modules/parameter_metadata/?modules=bogus_module"
Expand Down
Loading