فهرست منبع

Device tests: use time.time() for mocking updated_at times

updated_at from tinytuya is a float, but datetime.now() returns an object.
We used to be able to compare datetime objects to float, but that seems
to have stopped working in latest python.
Jason Rumney 1 سال پیش
والد
کامیت
982ba3d567
1فایلهای تغییر یافته به همراه3 افزوده شده و 4 حذف شده
  1. 3 4
      tests/test_device.py

+ 3 - 4
tests/test_device.py

@@ -1,4 +1,3 @@
-from datetime import datetime
 from time import time
 from time import time
 from unittest import IsolatedAsyncioTestCase
 from unittest import IsolatedAsyncioTestCase
 from unittest.mock import ANY, AsyncMock, Mock, call, patch
 from unittest.mock import ANY, AsyncMock, Mock, call, patch
@@ -92,7 +91,7 @@ class TestDevice(IsolatedAsyncioTestCase):
         self.subject.async_refresh.assert_awaited()
         self.subject.async_refresh.assert_awaited()
 
 
     async def test_detection_returns_none_when_device_type_not_detected(self):
     async def test_detection_returns_none_when_device_type_not_detected(self):
-        self.subject._cached_state = {"2": False, "updated_at": datetime.now()}
+        self.subject._cached_state = {"2": False, "updated_at": time.time()}
         self.assertEqual(await self.subject.async_inferred_type(), None)
         self.assertEqual(await self.subject.async_inferred_type(), None)
 
 
     async def test_refreshes_when_there_is_no_pending_reset(self):
     async def test_refreshes_when_there_is_no_pending_reset(self):
@@ -137,7 +136,7 @@ class TestDevice(IsolatedAsyncioTestCase):
     async def test_refresh_clears_cache_after_allowed_failures(self):
     async def test_refresh_clears_cache_after_allowed_failures(self):
         self.subject._cached_state = {"1": True}
         self.subject._cached_state = {"1": True}
         self.subject._pending_updates = {
         self.subject._pending_updates = {
-            "1": {"value": False, "updated_at": datetime.now(), "sent": True}
+            "1": {"value": False, "updated_at": time.time(), "sent": True}
         }
         }
         self.mock_api().status.side_effect = [
         self.mock_api().status.side_effect = [
             Exception("Error"),
             Exception("Error"),
@@ -234,7 +233,7 @@ class TestDevice(IsolatedAsyncioTestCase):
     def test_reset_cached_state_clears_cached_state_and_pending_updates(self):
     def test_reset_cached_state_clears_cached_state_and_pending_updates(self):
         self.subject._cached_state = {"1": True, "updated_at": time()}
         self.subject._cached_state = {"1": True, "updated_at": time()}
         self.subject._pending_updates = {
         self.subject._pending_updates = {
-            "1": {"value": False, "updated_at": datetime.now(), "sent": True}
+            "1": {"value": False, "updated_at": time.time(), "sent": True}
         }
         }
 
 
         self.subject._reset_cached_state()
         self.subject._reset_cached_state()