Preserve Photos deployment configuration and verify source dependencies
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"""Production smoke must reject incomplete restored photo dependencies."""
|
||||
|
||||
import io
|
||||
import json
|
||||
import runpy
|
||||
from pathlib import Path
|
||||
from urllib.request import Request
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"sources,connection,passes",
|
||||
[
|
||||
([], {}, True),
|
||||
([{"enabled": False, "people_filter": True}], {}, True),
|
||||
(
|
||||
[{"enabled": True, "people_filter": True}],
|
||||
{"configured": False, "connected": False},
|
||||
False,
|
||||
),
|
||||
(
|
||||
[{"enabled": True, "people_filter": True}],
|
||||
{"configured": True, "connected": False},
|
||||
False,
|
||||
),
|
||||
(
|
||||
[{"enabled": True, "people_filter": True}],
|
||||
{"configured": True, "connected": True},
|
||||
True,
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_smoke_validates_people_filter_dependency(
|
||||
monkeypatch, sources, connection, passes
|
||||
):
|
||||
calls = []
|
||||
|
||||
class Response(io.BytesIO):
|
||||
status = 200
|
||||
|
||||
def read_only(request: Request, timeout):
|
||||
assert request.get_method() == "GET"
|
||||
calls.append(request.full_url)
|
||||
value = sources if request.full_url.endswith("/photo-sources") else connection
|
||||
return Response(json.dumps(value).encode())
|
||||
|
||||
monkeypatch.setenv("FRAME_FLOW_TOKEN", "fixture")
|
||||
monkeypatch.setattr("urllib.request.urlopen", read_only)
|
||||
script = Path(__file__).parents[1] / "scripts/smoke-test.py"
|
||||
if passes:
|
||||
runpy.run_path(str(script))
|
||||
else:
|
||||
with pytest.raises(RuntimeError, match="requires Photos connection"):
|
||||
runpy.run_path(str(script))
|
||||
assert len(calls) >= 10
|
||||
Reference in New Issue
Block a user