36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
from pathlib import Path
|
|
import asyncio
|
|
|
|
from hockey_data.agent_bridge import VmixAgentHub
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
JS = (ROOT / 'hockey_data/static/admin-directories.js').read_text(encoding='utf-8')
|
|
BRIDGE = (ROOT / 'hockey_data/agent_bridge.py').read_text(encoding='utf-8')
|
|
APP = (ROOT / 'app.py').read_text(encoding='utf-8')
|
|
|
|
|
|
def test_agent_version_gates():
|
|
assert VmixAgentHub._agent_supports_mapping_inventory('1.2.4') is False
|
|
assert VmixAgentHub._agent_supports_mapping_inventory('1.3.0') is True
|
|
assert VmixAgentHub._agent_supports_mapping_inventory('1.4.0') is True
|
|
assert VmixAgentHub._agent_supports_batch('1.3.9') is False
|
|
assert VmixAgentHub._agent_supports_batch('1.4.0') is True
|
|
|
|
|
|
def test_mapping_device_payload_exposes_version_support():
|
|
assert '"agent_version": row.agent_version or ""' in BRIDGE
|
|
assert '"mapping_supported": self._agent_supports_mapping_inventory(row.agent_version)' in BRIDGE
|
|
assert '"reason": "agent_mapping_unsupported"' in BRIDGE
|
|
assert '"required_agent_version": "1.3.0"' in BRIDGE
|
|
|
|
|
|
def test_mapping_editor_uses_resolved_profile_not_only_exact_fingerprint():
|
|
assert 'resolvedProfileId === profileId' in JS
|
|
assert 'item.mapping_supported === false' in JS
|
|
assert 'слишком старый для Mapping' in JS
|
|
assert 'нужен 1.3.0+' in JS
|
|
|
|
|
|
def test_runtime_version():
|
|
assert 'BUILD_VERSION = "2026.08.24.15"' in APP
|