import py_compile
import sys
from pathlib import Path

FW = Path(__file__).resolve().parents[1] / "firmware"
sys.path.insert(0, str(FW))


def test_every_firmware_file_compiles():
    for p in FW.glob("*.py"):
        py_compile.compile(str(p), doraise=True)


def test_config_merge_and_name():
    import tiny_config
    import tiny_provision

    cfg = tiny_config.merge({}, {"device_id": "d", "token": "tind_x", "name": "tiny-ab12", "networks": [{"ssid": "home", "key": "k"}]})
    assert tiny_config.complete(cfg)
    cfg = tiny_config.merge(cfg, {"ssid": "hotspot", "key": "h"})
    assert [n["ssid"] for n in tiny_config.networks(cfg)] == ["hotspot", "home"]
    assert tiny_provision.uid_tag(bytes.fromhex("3a0020000651323531363837")) != tiny_provision.uid_tag(bytes.fromhex("4b002a000751323531363837"))
    assert tiny_provision.ap_ssid().startswith("tiny-")
