lock.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # Mixins for testing locks
  2. from homeassistant.components.lock import STATE_LOCKED, STATE_UNLOCKED
  3. from homeassistant.const import STATE_UNAVAILABLE
  4. from ..helpers import assert_device_properties_set
  5. class BasicLockTests:
  6. def setUpBasicLock(self, dps, subject):
  7. self.basicLock = subject
  8. self.basicLockDps = dps
  9. def test_basic_lock_state(self):
  10. self.dps[self.basicLockDps] = True
  11. self.assertEqual(self.basicLock.state, STATE_LOCKED)
  12. self.dps[self.basicLockDps] = False
  13. self.assertEqual(self.basicLock.state, STATE_UNLOCKED)
  14. self.dps[self.basicLockDps] = None
  15. self.assertEqual(self.basicLock.state, STATE_UNAVAILABLE)
  16. def test_basic_lock_is_locked(self):
  17. self.dps[self.basicLockDps] = True
  18. self.assertTrue(self.basicLock.is_locked)
  19. self.dps[self.basicLockDps] = False
  20. self.assertFalse(self.basicLock.is_locked)
  21. self.dps[self.basicLockDps] = None
  22. self.assertFalse(self.basicLock.is_locked)
  23. async def test_basic_lock_locks(self):
  24. async with assert_device_properties_set(
  25. self.basicLock._device,
  26. {self.basicLockDps: True},
  27. ):
  28. await self.basicLock.async_lock()
  29. async def test_basic_lock_unlocks(self):
  30. async with assert_device_properties_set(
  31. self.basicLock._device,
  32. {self.basicLockDps: False},
  33. ):
  34. await self.basicLock.async_unlock()
  35. def test_basic_lock_state_attributes(self):
  36. self.assertEqual(self.basicLock.extra_state_attributes, {})