64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
from typing import Any
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
import scripts.smoke_1c_write_preflight as smoke # noqa: E402
|
|
|
|
|
|
def test_repository_lock_is_a_valid_preflight_classification() -> None:
|
|
assert smoke.classified_preflight_status("needs_repository_lock") is True
|
|
assert smoke.classified_preflight_status("unexpected") is False
|
|
|
|
|
|
def test_saved_module_target_prefers_bounded_stream(monkeypatch) -> None:
|
|
whole_form = {
|
|
"kind": "module",
|
|
"module_ref": "ConfigCASSave:extension__form.0",
|
|
"file_name": "extension__form.0",
|
|
"module_path": "2",
|
|
}
|
|
bounded_stream = {
|
|
"kind": "module",
|
|
"module_ref": "ConfigSave:module.3#stream:4",
|
|
"file_name": "module.3",
|
|
"stream_index": 4,
|
|
}
|
|
|
|
def fake_rpc_call(
|
|
_endpoint_url: str,
|
|
method: str,
|
|
_payload: dict[str, Any],
|
|
_timeout: float,
|
|
*,
|
|
transport: str,
|
|
session_id: str | None,
|
|
) -> dict[str, Any]:
|
|
assert method == "metadata.saved_state.modules.search"
|
|
assert transport == "rest"
|
|
assert session_id is None
|
|
return {
|
|
"status": "ok",
|
|
"modules": [
|
|
{"streams": [{"write_plan_target": whole_form}]},
|
|
{"streams": [{"write_plan_target": bounded_stream}]},
|
|
],
|
|
}
|
|
|
|
monkeypatch.setattr(smoke, "rpc_call", fake_rpc_call)
|
|
|
|
result = smoke.first_saved_module_target(
|
|
"http://adapter",
|
|
"upo_test",
|
|
30,
|
|
transport="rest",
|
|
session_id=None,
|
|
)
|
|
|
|
assert result == bounded_stream
|