Skip to content

Commit

Permalink
No need to pass the member id when we can retrieve it ourselves
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexwijn committed Jan 26, 2025
1 parent e54edef commit 243693b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
12 changes: 6 additions & 6 deletions custom_components/sat/manufacturer.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@


class Manufacturer(ABC):
def __init__(self, member_id: int):
self._member_id = member_id
def __init__(self):
self._member_id = MANUFACTURERS.get(type(self).__name__)

@property
def member_id(self) -> int:
Expand All @@ -46,15 +46,15 @@ def resolve_by_name(name: str) -> Optional[Manufacturer]:
if not (member_id := MANUFACTURERS.get(name)):
return None

return ManufacturerFactory._import_class(snake_case(name), name)(member_id)
return ManufacturerFactory._import_class(snake_case(name), name)()

@staticmethod
def resolve_by_member_id(member_id: int) -> List[Manufacturer]:
"""Resolve a list of Manufacturer instances by member ID."""
return [
ManufacturerFactory._import_class(snake_case(name), name)(identifier)
for name, identifier in MANUFACTURERS.items()
if member_id == identifier
ManufacturerFactory._import_class(snake_case(name), name)()
for name, value in MANUFACTURERS.items()
if member_id == value
]

@staticmethod
Expand Down
3 changes: 2 additions & 1 deletion tests/test_manufacturer.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ def test_resolve_by_member_id():
assert len(manufacturers) == len(names), f"Expected {len(names)} manufacturers for member ID {member_id}"

for manufacturer in manufacturers:
assert manufacturer.__class__.__name__ in names, f"Manufacturer name '{manufacturer.name}' not expected for member ID {member_id}"
assert manufacturer.member_id == member_id, f"Expected {manufacturer.member_id} for member ID {member_id}"
assert manufacturer.__class__.__name__ in names, f"Manufacturer name '{manufacturer.friendly_name}' not expected for member ID {member_id}"

# Test invalid member ID
manufacturers = ManufacturerFactory.resolve_by_member_id(999)
Expand Down

0 comments on commit 243693b

Please sign in to comment.