Files
meshcore-bot/tests/test_enums.py
Stacy Olivas ae57e651ea test: expanded test suite for v0.9.0 modules
Command tests:
- tests/commands/: test_base_command, test_cmd_command, test_dice_command,
  test_hello_command, test_help_command, test_magic8_command,
  test_ping_command, test_roll_command
- tests/test_bridge_bot_responses, test_channel_manager_logic,
  test_checkin_service, test_command_manager, test_command_prefix,
  test_config_merge, test_config_validation, test_db_manager,
  test_plugin_loader, test_profanity_filter, test_security_utils,
  test_service_plugin_loader, test_utils

Integration and unit:
- tests/integration/: test_path_graph_integration, test_path_resolution
- tests/regression/: test_keyword_escapes
- tests/unit/: test_mesh_graph, test_mesh_graph_edges,
  test_mesh_graph_multihop, test_mesh_graph_optimizations,
  test_mesh_graph_scoring, test_mesh_graph_validation,
  test_path_command_graph, test_path_command_graph_selection,
  test_path_command_multibyte

Helpers: tests/conftest.py, tests/helpers.py
2026-03-17 18:07:18 -07:00

108 lines
3.8 KiB
Python

"""Tests for modules/enums.py — enum values and flag combinations."""
from modules.enums import AdvertFlags, DeviceRole, PayloadType, PayloadVersion, RouteType
class TestAdvertFlags:
"""Tests for AdvertFlags Flag enum."""
def test_type_flags_values(self):
assert AdvertFlags.ADV_TYPE_NONE.value == 0x00
assert AdvertFlags.ADV_TYPE_CHAT.value == 0x01
assert AdvertFlags.ADV_TYPE_REPEATER.value == 0x02
assert AdvertFlags.ADV_TYPE_ROOM.value == 0x03
assert AdvertFlags.ADV_TYPE_SENSOR.value == 0x04
def test_feature_flag_values(self):
assert AdvertFlags.ADV_LATLON_MASK.value == 0x10
assert AdvertFlags.ADV_FEAT1_MASK.value == 0x20
assert AdvertFlags.ADV_FEAT2_MASK.value == 0x40
assert AdvertFlags.ADV_NAME_MASK.value == 0x80
def test_legacy_aliases_equal_originals(self):
assert AdvertFlags.IsCompanion == AdvertFlags.ADV_TYPE_CHAT
assert AdvertFlags.IsRepeater == AdvertFlags.ADV_TYPE_REPEATER
assert AdvertFlags.IsRoomServer == AdvertFlags.ADV_TYPE_ROOM
assert AdvertFlags.HasLocation == AdvertFlags.ADV_LATLON_MASK
assert AdvertFlags.HasName == AdvertFlags.ADV_NAME_MASK
assert AdvertFlags.HasNameBit7 == AdvertFlags.ADV_NAME_MASK
def test_flag_combination(self):
"""Flags can be combined with |."""
combined = AdvertFlags.ADV_TYPE_REPEATER | AdvertFlags.ADV_LATLON_MASK
assert AdvertFlags.ADV_TYPE_REPEATER in combined
assert AdvertFlags.ADV_LATLON_MASK in combined
def test_flag_membership(self):
combined = AdvertFlags.ADV_TYPE_CHAT | AdvertFlags.ADV_NAME_MASK
assert AdvertFlags.ADV_NAME_MASK in combined
assert AdvertFlags.ADV_LATLON_MASK not in combined
class TestPayloadType:
"""Tests for PayloadType Enum."""
def test_known_values(self):
assert PayloadType.REQ.value == 0x00
assert PayloadType.RESPONSE.value == 0x01
assert PayloadType.TXT_MSG.value == 0x02
assert PayloadType.ACK.value == 0x03
assert PayloadType.ADVERT.value == 0x04
assert PayloadType.GRP_TXT.value == 0x05
assert PayloadType.GRP_DATA.value == 0x06
assert PayloadType.ANON_REQ.value == 0x07
assert PayloadType.PATH.value == 0x08
assert PayloadType.TRACE.value == 0x09
assert PayloadType.MULTIPART.value == 0x0A
assert PayloadType.RAW_CUSTOM.value == 0x0F
def test_lookup_by_value(self):
assert PayloadType(0x02) == PayloadType.TXT_MSG
assert PayloadType(0x04) == PayloadType.ADVERT
def test_all_members_unique(self):
values = [m.value for m in PayloadType]
assert len(values) == len(set(values))
class TestPayloadVersion:
"""Tests for PayloadVersion Enum."""
def test_versions(self):
assert PayloadVersion.VER_1.value == 0x00
assert PayloadVersion.VER_2.value == 0x01
assert PayloadVersion.VER_3.value == 0x02
assert PayloadVersion.VER_4.value == 0x03
def test_lookup(self):
assert PayloadVersion(0x00) == PayloadVersion.VER_1
class TestRouteType:
"""Tests for RouteType Enum."""
def test_values(self):
assert RouteType.TRANSPORT_FLOOD.value == 0x00
assert RouteType.FLOOD.value == 0x01
assert RouteType.DIRECT.value == 0x02
assert RouteType.TRANSPORT_DIRECT.value == 0x03
def test_lookup_by_value(self):
assert RouteType(0x01) == RouteType.FLOOD
class TestDeviceRole:
"""Tests for DeviceRole Enum."""
def test_values(self):
assert DeviceRole.Companion.value == "Companion"
assert DeviceRole.Repeater.value == "Repeater"
assert DeviceRole.RoomServer.value == "RoomServer"
def test_lookup_by_value(self):
assert DeviceRole("Repeater") == DeviceRole.Repeater
def test_all_members(self):
assert len(list(DeviceRole)) == 3