restructure

This commit is contained in:
John Lancaster
2024-08-12 22:51:43 -05:00
parent 4729bc2520
commit 4f00f2e384
9 changed files with 32 additions and 23 deletions

View File

@@ -2,4 +2,4 @@ from .eggs import Eggs
from .ham import Ham
from .spam import Spam
__all__ = ["Eggs", "Ham", "Spam"]
__all__ = ['Eggs', 'Ham', 'Spam']

View File

@@ -0,0 +1,6 @@
from dataclasses import dataclass
@dataclass
class FoodItem:
taste: str

View File

@@ -1,6 +1,8 @@
from appdaemon.adapi import ADAPI
from dataclasses import dataclass
from .base import FoodItem
class Eggs(ADAPI):
def initialize(self):
self.log(f"{self.__class__.__name__} Initialized")
@dataclass
class Eggs(FoodItem):
taste: str = 'good'

View File

@@ -1,6 +1,8 @@
from appdaemon.adapi import ADAPI
from dataclasses import dataclass
from .base import FoodItem
class Ham(ADAPI):
def initialize(self):
self.log(f"{self.__class__.__name__} Initialized")
@dataclass
class Ham(FoodItem):
taste: str = 'good'

View File

@@ -1,8 +1,7 @@
from dataclasses import dataclass, field
from typing import List
from appdaemon.adapi import ADAPI
from .base import FoodItem
from .eggs import Eggs
from .ham import Ham
@@ -13,7 +12,7 @@ class GreenEggs(Eggs):
@dataclass
class Menu:
dishes: List[ADAPI] = field(init=False)
dishes: List[FoodItem] = field(init=False)
def __post_init__(self):
self.dishes = [GreenEggs, Ham]

View File

@@ -1,6 +1,8 @@
from appdaemon.adapi import ADAPI
from dataclasses import dataclass
from .base import FoodItem
class Spam(ADAPI):
def initialize(self):
self.log(f"{self.__class__.__name__} Initialized")
@dataclass
class Spam(FoodItem):
taste: str = 'bad'

View File

@@ -1,16 +1,14 @@
from dataclasses import dataclass, field
from appdaemon.adapi import ADAPI
from food.menu import Menu
@dataclass(init=False)
class Restaurant(ADAPI):
menu: Menu = field(default=Menu)
menu: Menu
def initialize(self):
self.log(f'{self.__class__.__name__} initialized')
log_str = ', '.join(f'{d.name}' for d in self.menu.dishes)
self.menu = Menu()
log_str = ', '.join(f'{d.__class__.__name__} [{d.taste}]' for d in self.menu.dishes)
self.log(f'Menu: {log_str}')

View File

@@ -41,7 +41,7 @@ def test_file(ad: AppDaemon, caplog: pytest.LogCaptureFixture, config_repo: Repo
ad.loop.run_until_complete(asyncio.sleep(1.0))
module_load_order = get_load_order(caplog)
assert module_load_order == ['food.meal', 'restaurant']
assert module_load_order == ['food.menu', 'restaurant']
reset_file(config_repo, module_file)
ad.loop.run_until_complete(asyncio.sleep(1.0))
@@ -60,7 +60,7 @@ def test_file_with_error(ad: AppDaemon, caplog: pytest.LogCaptureFixture, config
ad.loop.run_until_complete(asyncio.sleep(1.0))
module_load_order = get_load_order(caplog)
assert module_load_order == ['food.meal', 'restaurant']
assert module_load_order == ['food.menu', 'restaurant']
reset_file(config_repo, module_file)
ad.loop.run_until_complete(asyncio.sleep(1.0))