Skip to content

Commit

Permalink
Fixed some tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexwijn committed Jan 25, 2025
1 parent 571e110 commit cad7115
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
12 changes: 10 additions & 2 deletions custom_components/sat/manufacturer.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@ def name(self) -> str:


class ManufacturerFactory:
@staticmethod
def all() -> List[Manufacturer]:
"""Resolve a list of all Manufacturer instances."""
return [
ManufacturerFactory._import_class(module, name)()
for name, module in MANUFACTURERS.items()
]

@staticmethod
def resolve_by_name(name: str) -> Optional[Manufacturer]:
"""Resolve a Manufacturer instance by its name."""
Expand All @@ -50,8 +58,8 @@ def resolve_by_member_id(member_id: int) -> List[Manufacturer]:
"""Resolve a list of Manufacturer instances by member ID."""
return [
manufacturer
for name, module in MANUFACTURERS.items()
if (manufacturer := ManufacturerFactory._import_class(module, name)()).identifier == member_id
for manufacturer in ManufacturerFactory.all()
if manufacturer.identifier == member_id
]

@staticmethod
Expand Down
13 changes: 7 additions & 6 deletions tests/test_manufacturer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@

def test_resolve_by_name():
"""Test resolving manufacturers by name."""
for name, data in MANUFACTURERS.items():
# Test valid name
for name, module in MANUFACTURERS.items():
manufacturer = ManufacturerFactory.resolve_by_name(name)
assert manufacturer is not None, f"Manufacturer '{name}' should not be None"
assert manufacturer.__class__.__name__ == data["class"]
assert manufacturer.__class__.__name__ == name

# Test invalid name
manufacturer = ManufacturerFactory.resolve_by_name("InvalidName")
Expand All @@ -16,9 +15,11 @@ def test_resolve_by_name():

def test_resolve_by_member_id():
"""Test resolving manufacturers by member ID."""
member_id_to_names = {data["id"]: [] for data in MANUFACTURERS.values()}
for name, data in MANUFACTURERS.items():
member_id_to_names[data["id"]].append(name)
manufacturers = ManufacturerFactory.all()
member_id_to_names = {manufacturer.identifier: [] for manufacturer in manufacturers}

for manufacturer in manufacturers:
member_id_to_names[manufacturer.identifier].append(type(manufacturer).__name__)

for member_id, names in member_id_to_names.items():
manufacturers = ManufacturerFactory.resolve_by_member_id(member_id)
Expand Down

0 comments on commit cad7115

Please sign in to comment.