fix(meshcore): fix test isolation, enum value assertions, and os import

This commit is contained in:
James Smith
2026-05-11 10:39:32 +01:00
parent cf8a80192e
commit 289ff504cf
2 changed files with 14 additions and 12 deletions
+13 -10
View File
@@ -11,13 +11,10 @@ class TestAvailability:
assert isinstance(is_meshcore_available(), bool) assert isinstance(is_meshcore_available(), bool)
def test_false_when_not_installed(self): def test_false_when_not_installed(self):
with patch.dict("sys.modules", {"meshcore": None}): with patch("utils.meshcore.HAS_MESHCORE", False):
import importlib from utils.meshcore import is_meshcore_available
import utils.meshcore as m assert is_meshcore_available() is False
importlib.reload(m)
assert m.is_meshcore_available() is False
class TestMeshcoreMessage: class TestMeshcoreMessage:
@@ -49,6 +46,12 @@ class TestMeshcoreMessage:
d = self._make(snr=None).to_dict() d = self._make(snr=None).to_dict()
assert d["snr"] is None assert d["snr"] is None
def test_to_dict_timestamp_is_iso(self):
msg = self._make(timestamp=datetime(2026, 5, 11, 10, 30, 0, tzinfo=timezone.utc))
d = msg.to_dict()
assert "2026-05-11" in d["timestamp"]
assert isinstance(d["timestamp"], str)
class TestMeshcoreNode: class TestMeshcoreNode:
def test_to_dict_includes_is_repeater(self): def test_to_dict_includes_is_repeater(self):
@@ -91,7 +94,7 @@ class TestConnectionState:
def test_state_enum_values(self): def test_state_enum_values(self):
from utils.meshcore import ConnectionState from utils.meshcore import ConnectionState
assert ConnectionState.DISCONNECTED assert ConnectionState.DISCONNECTED.value == "disconnected"
assert ConnectionState.CONNECTING assert ConnectionState.CONNECTING.value == "connecting"
assert ConnectionState.CONNECTED assert ConnectionState.CONNECTED.value == "connected"
assert ConnectionState.ERROR assert ConnectionState.ERROR.value == "error"
+1 -2
View File
@@ -11,6 +11,7 @@ from __future__ import annotations
import contextlib import contextlib
import enum import enum
import glob import glob
import os
import queue import queue
import threading import threading
from dataclasses import dataclass from dataclasses import dataclass
@@ -231,8 +232,6 @@ def list_serial_ports() -> list[str]:
def _is_docker() -> bool: def _is_docker() -> bool:
"""Return True when running inside a Docker container.""" """Return True when running inside a Docker container."""
import os
return os.path.exists("/.dockerenv") or os.environ.get("INTERCEPT_DOCKER") == "1" return os.path.exists("/.dockerenv") or os.environ.get("INTERCEPT_DOCKER") == "1"