lock.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # Mixins for testing locks
  2. from ..helpers import assert_device_properties_set
  3. class BasicLockTests:
  4. def setUpBasicLock(self, dps, subject):
  5. self.basicLock = subject
  6. self.basicLockDps = dps
  7. def test_basic_lock_is_locked(self):
  8. self.dps[self.basicLockDps] = True
  9. self.assertTrue(self.basicLock.is_locked)
  10. self.dps[self.basicLockDps] = False
  11. self.assertFalse(self.basicLock.is_locked)
  12. self.dps[self.basicLockDps] = None
  13. self.assertFalse(self.basicLock.is_locked)
  14. async def test_basic_lock_locks(self):
  15. async with assert_device_properties_set(
  16. self.basicLock._device,
  17. {self.basicLockDps: True},
  18. ):
  19. await self.basicLock.async_lock()
  20. async def test_basic_lock_unlocks(self):
  21. async with assert_device_properties_set(
  22. self.basicLock._device,
  23. {self.basicLockDps: False},
  24. ):
  25. await self.basicLock.async_unlock()
  26. def test_basic_lock_state_attributes(self):
  27. self.assertEqual(self.basicLock.extra_state_attributes, {})