Files
workphone-sdk/sdk/tests/test_connection_bootstrap.py

46 lines
1.7 KiB
Python

"""无线 Bootstrap 必须输出设备侧可路由的部署地址。"""
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "app"))
def test_bootstrap_uses_configured_wss_endpoint(monkeypatch):
from routers import connection
monkeypatch.setattr(connection.settings, "WORKPHONE_PUBLIC_WSS", "")
monkeypatch.setattr(connection.settings, "WORKPHONE_BIND_SERVER", "wss://sdk.example.test/ws/device")
monkeypatch.setattr(connection.settings, "WORKPHONE_LAN_IP", "")
sdk_base, ws_base = connection._bootstrap_server_url(8899)
assert sdk_base == "https://sdk.example.test"
assert ws_base == "wss://sdk.example.test"
def test_bootstrap_uses_configured_lan_ip_before_container_probe(monkeypatch):
from routers import connection
monkeypatch.setattr(connection.settings, "WORKPHONE_PUBLIC_WSS", "")
monkeypatch.setattr(connection.settings, "WORKPHONE_BIND_SERVER", "")
monkeypatch.setattr(connection.settings, "WORKPHONE_LAN_IP", "192.168.110.47")
sdk_base, ws_base = connection._bootstrap_server_url(8899)
assert sdk_base == "http://192.168.110.47:8899"
assert ws_base == "ws://192.168.110.47:8899"
def test_bootstrap_prefers_public_wss(monkeypatch):
from routers import connection
monkeypatch.setattr(connection.settings, "WORKPHONE_PUBLIC_WSS", "wss://wpsdk.quwanzhi.com/ws/device")
monkeypatch.setattr(connection.settings, "WORKPHONE_BIND_SERVER", "ws://192.168.110.47:8899/ws/device")
monkeypatch.setattr(connection.settings, "WORKPHONE_LAN_IP", "192.168.110.47")
sdk_base, ws_base = connection._bootstrap_server_url(8899)
assert sdk_base == "https://wpsdk.quwanzhi.com"
assert ws_base == "wss://wpsdk.quwanzhi.com"