From 0ce39a5ac00fd5813e00b4b2c008a04c1936a5bc Mon Sep 17 00:00:00 2001 From: Patrick Skillen Date: Wed, 27 May 2026 15:12:02 +0100 Subject: [PATCH] test(meshcore): unit tests for _path_hashes segment splitting Cover 1/2/3-byte path_hash_size and empty path cases for epic 267. --- test/test_meshcore_path_hashes.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/test_meshcore_path_hashes.py diff --git a/test/test_meshcore_path_hashes.py b/test/test_meshcore_path_hashes.py new file mode 100644 index 0000000..452b335 --- /dev/null +++ b/test/test_meshcore_path_hashes.py @@ -0,0 +1,28 @@ +"""Unit tests for MeshCore path hash splitting (_path_hashes).""" + +from src.meshcore.serializers import _path_hashes + + +def test_path_hashes_two_byte_default(): + payload = {"path": "f3bcf1a2b3c4", "path_hash_size": 2} + assert _path_hashes(payload) == ["f3bc", "f1a2", "b3c4"] + + +def test_path_hashes_one_byte(): + payload = {"path": "aabbcc", "path_hash_size": 1} + assert _path_hashes(payload) == ["aa", "bb", "cc"] + + +def test_path_hashes_three_byte(): + payload = {"path": "aabbccddeeff", "path_hash_size": 3} + assert _path_hashes(payload) == ["aabbcc", "ddeeff"] + + +def test_path_hashes_missing_path_returns_none(): + assert _path_hashes({"path_len": 2}) is None + assert _path_hashes({}) is None + + +def test_path_hashes_list_passthrough(): + payload = {"path": ["aa", "bb"]} + assert _path_hashes(payload) == ["aa", "bb"]