From 6807ee6878d8669e776a3ce0f7fcc93f41f7bff9 Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 11 May 2026 10:39:32 +0100 Subject: [PATCH] fix(meshcore): fix test isolation, enum value assertions, and os import --- tests/test_meshcore_client.py | 23 +++++++++++++---------- utils/meshcore.py | 3 +-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/tests/test_meshcore_client.py b/tests/test_meshcore_client.py index aa0e938..58f9649 100644 --- a/tests/test_meshcore_client.py +++ b/tests/test_meshcore_client.py @@ -11,13 +11,10 @@ class TestAvailability: assert isinstance(is_meshcore_available(), bool) def test_false_when_not_installed(self): - with patch.dict("sys.modules", {"meshcore": None}): - import importlib + with patch("utils.meshcore.HAS_MESHCORE", False): + from utils.meshcore import is_meshcore_available - import utils.meshcore as m - - importlib.reload(m) - assert m.is_meshcore_available() is False + assert is_meshcore_available() is False class TestMeshcoreMessage: @@ -49,6 +46,12 @@ class TestMeshcoreMessage: d = self._make(snr=None).to_dict() 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: def test_to_dict_includes_is_repeater(self): @@ -91,7 +94,7 @@ class TestConnectionState: def test_state_enum_values(self): from utils.meshcore import ConnectionState - assert ConnectionState.DISCONNECTED - assert ConnectionState.CONNECTING - assert ConnectionState.CONNECTED - assert ConnectionState.ERROR + assert ConnectionState.DISCONNECTED.value == "disconnected" + assert ConnectionState.CONNECTING.value == "connecting" + assert ConnectionState.CONNECTED.value == "connected" + assert ConnectionState.ERROR.value == "error" diff --git a/utils/meshcore.py b/utils/meshcore.py index 9f03bb3..6fbaeea 100644 --- a/utils/meshcore.py +++ b/utils/meshcore.py @@ -11,6 +11,7 @@ from __future__ import annotations import contextlib import enum import glob +import os import queue import threading from dataclasses import dataclass @@ -231,8 +232,6 @@ def list_serial_ports() -> list[str]: def _is_docker() -> bool: """Return True when running inside a Docker container.""" - import os - return os.path.exists("/.dockerenv") or os.environ.get("INTERCEPT_DOCKER") == "1"