"""Tests for src/mtdata/utils/symbol.py"""
from types import SimpleNamespace
from mtdata.utils.symbol import _extract_group_path
class TestExtractGroupPath:
def test_strips_symbol_from_path(self):
sym = SimpleNamespace(path="Forex\\Major\\EURUSD", name="EURUSD")
assert _extract_group_path(sym) == "Forex\\Major"
def test_case_insensitive(self):
sym = SimpleNamespace(path="Forex\\eurusd", name="EURUSD")
assert _extract_group_path(sym) == "Forex"
def test_no_trailing_symbol(self):
sym = SimpleNamespace(path="Forex\\Major", name="GBPUSD")
assert _extract_group_path(sym) == "Forex\\Major"
def test_empty_path(self):
sym = SimpleNamespace(path="", name="EURUSD")
assert _extract_group_path(sym) == "Unknown"
def test_none_path(self):
sym = SimpleNamespace(path=None, name="EURUSD")
assert _extract_group_path(sym) == "Unknown"
def test_no_name(self):
sym = SimpleNamespace(path="Forex\\Major", name="")
assert _extract_group_path(sym) == "Forex\\Major"
def test_single_component_matches_name(self):
sym = SimpleNamespace(path="EURUSD", name="EURUSD")
assert _extract_group_path(sym) == "Unknown"
def test_missing_attributes(self):
sym = object()
assert _extract_group_path(sym) == "Unknown"