From b22b39493c5b6c747b16e9430f3833bb8869cef6 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Sun, 6 Feb 2022 13:45:21 -0800 Subject: Add a simple test for waitable presence. --- waitable_presence.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'waitable_presence.py') diff --git a/waitable_presence.py b/waitable_presence.py index e1da431..46d7cbe 100644 --- a/waitable_presence.py +++ b/waitable_presence.py @@ -41,13 +41,17 @@ class WaitablePresenceDetectorWithMemory(state_tracker.WaitableAutomaticStateTra self, override_update_interval_sec: float = 60.0, override_location: Location = site_config.get_location(), + injected_presence_detector: Optional[base_presence.PresenceDetection] = None, ) -> None: self.last_someone_is_home: Optional[bool] = None self.someone_is_home: Optional[bool] = None self.everyone_gone_since: Optional[datetime.datetime] = None self.someone_home_since: Optional[datetime.datetime] = None self.location = override_location - self.detector: base_presence.PresenceDetection = base_presence.PresenceDetection() + if injected_presence_detector is not None: + self.detector: base_presence.PresenceDetection = injected_presence_detector + else: + self.detector = base_presence.PresenceDetection() super().__init__( { 'poll_presence': override_update_interval_sec, @@ -87,14 +91,14 @@ class WaitablePresenceDetectorWithMemory(state_tracker.WaitableAutomaticStateTra logger.debug('PresenceDetector is incomplete; trying to reinitialize...') self.detector = base_presence.PresenceDetection() - def is_someone_home(self) -> Tuple[bool, datetime.datetime]: + def is_someone_home(self) -> Optional[Tuple[bool, datetime.datetime]]: """Returns a tuple of a bool that indicates whether someone is home and a datetime that indicates how long either someone has been home or no one has been home. """ if self.someone_is_home is None: - raise Exception("Too Soon!") + return None # checked too soon, wait a bit. if self.someone_is_home: assert self.someone_home_since is not None return (True, self.someone_home_since) -- cgit v1.3