From effaf33f2c54a5d14554d697d9e796456c2cbb68 Mon Sep 17 00:00:00 2001 From: John Carr Date: Thu, 5 Mar 2020 22:15:34 +0000 Subject: [PATCH] More code cleanup --- aiohomekit/model/__init__.py | 26 +++++++++++++++----------- tests/conftest.py | 8 ++++++-- tests/test_testing.py | 4 ++-- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/aiohomekit/model/__init__.py b/aiohomekit/model/__init__.py index 9fcc4580..09a43a8c 100644 --- a/aiohomekit/model/__init__.py +++ b/aiohomekit/model/__init__.py @@ -75,18 +75,21 @@ def append(self, service: Service): class Accessory(ToDictMixin): - def __init__( - self, + def __init__(self): + self.aid = get_id() + self._next_id = 0 + self.services = Services() + + @classmethod + def create_with_info( + cls, name: str, manufacturer: str, model: str, serial_number: str, firmware_revision: str, - ) -> None: - self.aid = get_id() - self.services = Services() - - self._next_id = 0 + ) -> "Accessory": + self = cls() accessory_info = self.add_service(ServicesTypes.ACCESSORY_INFORMATION) accessory_info.add_char(CharacteristicsTypes.IDENTIFY, description="Identify") @@ -98,10 +101,11 @@ def __init__( CharacteristicsTypes.FIRMWARE_REVISION, value=firmware_revision ) + return self + @classmethod - def setup_from_dict(cls, data: Dict[str, Any]) -> "Accessory": - accessory = cls("Name", "Mfr", "Model", "0001", "0.1") - accessory.services = Services() + def create_from_dict(cls, data: Dict[str, Any]) -> "Accessory": + accessory = cls() accessory.aid = data["aid"] for service_data in data["services"]: @@ -180,7 +184,7 @@ def from_file(cls, path): def from_list(cls, accessories): self = cls() for accessory in accessories: - self.add_accessory(Accessory.setup_from_dict(accessory)) + self.add_accessory(Accessory.create_from_dict(accessory)) return self def add_accessory(self, accessory: Accessory) -> None: diff --git a/tests/conftest.py b/tests/conftest.py index 8222bf25..5021411f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -54,7 +54,9 @@ def controller_and_unpaired_accessory(request, event_loop): model_mixin.id_counter = 0 httpd = AccessoryServer(config_file.name, None) - accessory = Accessory("Testlicht", "lusiardi.de", "Demoserver", "0001", "0.1") + accessory = Accessory.create_with_info( + "Testlicht", "lusiardi.de", "Demoserver", "0001", "0.1" + ) lightBulbService = accessory.add_service(ServicesTypes.LIGHTBULB) lightBulbService.add_char(CharacteristicsTypes.ON, value=False) httpd.add_accessory(accessory) @@ -118,7 +120,9 @@ def controller_and_paired_accessory(request, event_loop): model_mixin.id_counter = 0 httpd = AccessoryServer(config_file.name, None) - accessory = Accessory("Testlicht", "lusiardi.de", "Demoserver", "0001", "0.1") + accessory = Accessory.create_with_info( + "Testlicht", "lusiardi.de", "Demoserver", "0001", "0.1" + ) lightBulbService = accessory.add_service(ServicesTypes.LIGHTBULB) lightBulbService.add_char(CharacteristicsTypes.ON, value=False) httpd.add_accessory(accessory) diff --git a/tests/test_testing.py b/tests/test_testing.py index f1d8bac9..1a3c2ee2 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -60,7 +60,7 @@ async def test_update_named_service_events(): async def test_update_named_service_events_manual_accessory(): accessories = Accessories() - accessory = Accessory( + accessory = Accessory.create_with_info( name="TestLight", manufacturer="Test Mfr", model="Test Bulb", @@ -88,7 +88,7 @@ async def test_update_named_service_events_manual_accessory(): async def test_update_named_service_events_manual_accessory_auto_requires(): accessories = Accessories() - accessory = Accessory( + accessory = Accessory.create_with_info( name="TestLight", manufacturer="Test Mfr", model="Test Bulb",