test: unit tests for config, filters, client and inventory building

pytest suite with mocked NetBox API responses, plus a makefile driving
venv setup, tests, linting and formatting.
This commit is contained in:
2026-08-25 13:11:20 +02:00
parent 4138fef307
commit 362e71bff1
5 changed files with 355 additions and 6 deletions

View File

@@ -100,9 +100,7 @@ class NetBoxClient:
except requests.exceptions.RequestException as exc:
raise NetBoxAPIError(f"NetBox API request failed: {exc}") from exc
if response.status_code != 200:
raise NetBoxAPIError(
_extract_error_message(response), status_code=response.status_code
)
raise NetBoxAPIError(_extract_error_message(response), status_code=response.status_code)
try:
return response.json()
except ValueError as exc:
@@ -235,9 +233,7 @@ def validate_options(source: str, filter_name: str, filter_value: str) -> None:
raise InventoryError(f'Filter "{filter_name}" requires a value.')
def server_side_params(
client: NetBoxClient, filter_name: str, filter_value: str
) -> dict[str, Any]:
def server_side_params(client: NetBoxClient, filter_name: str, filter_value: str) -> dict[str, Any]:
"""Translate name-based filters into NetBox API query parameters."""
if filter_name == "tenant":
return {"tenant_id": client.resolve_id("tenancy/tenants", filter_value, "tenant")}