#!/usr/bin/env python3 # © Copyright 2021-2022, Scott Gasch """waitable_presence unittest.""" import unittest from unittest.mock import MagicMock import base_presence import unittest_utils # Needed for --unittests_ignore_perf flag import waitable_presence from type.locations import Location class TestWaitablePresence(unittest.TestCase): def test_basic_functionality(self): mock_detector = base_presence.PresenceDetection() mock_detector.update = MagicMock() mock_detector.is_anyone_in_location_now = MagicMock(return_value=True) wp = waitable_presence.WaitablePresenceDetectorWithMemory( 1.0, Location.HOUSE, mock_detector ) changed = wp.wait() (someone_is_home, since) = wp.is_someone_home() mock_detector.update.assert_called_with() mock_detector.is_anyone_in_location_now.assert_called_with(Location.HOUSE) self.assertTrue(changed) self.assertTrue(someone_is_home) self.assertNotEqual(None, since) wp.reset() wp.shutdown() if __name__ == '__main__': unittest.main()