J. Nick Koston 4 kuukautta sitten
vanhempi
commit
36b920ffaf
2 muutettua tiedostoa jossa 92 lisäystä ja 42 poistoa
  1. 7 2
      tests/test_adv_parser.py
  2. 85 40
      tests/test_curtain.py

+ 7 - 2
tests/test_adv_parser.py

@@ -358,7 +358,9 @@ def test_parse_advertisement_data_curtain3():
     """Test parse_advertisement_data for curtain 3."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     adv_data = generate_advertisement_data(
-        manufacturer_data={2409: b"\xaa\xbb\xcc\xdd\xee\xff\xf7\x07\x00\x11\x04\x00\x49"},
+        manufacturer_data={
+            2409: b"\xaa\xbb\xcc\xdd\xee\xff\xf7\x07\x00\x11\x04\x00\x49"
+        },
         service_data={"0000fd3d-0000-1000-8000-00805f9b34fb": b"{\xc0\x49\x00\x11\x04"},
         rssi=-80,
     )
@@ -391,7 +393,9 @@ def test_parse_advertisement_data_curtain3_passive():
     """Test parse_advertisement_data for curtain passive."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     adv_data = generate_advertisement_data(
-        manufacturer_data={2409: b"\xaa\xbb\xcc\xdd\xee\xff\xf7\x07\x00\x11\x04\x00\x49"},
+        manufacturer_data={
+            2409: b"\xaa\xbb\xcc\xdd\xee\xff\xf7\x07\x00\x11\x04\x00\x49"
+        },
         service_data={},
         rssi=-80,
     )
@@ -1364,6 +1368,7 @@ def test_parsing_lock_passive():
         active=False,
     )
 
+
 def test_parsing_lock_active_old_firmware():
     """Test parsing lock with active data. Old firmware."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")

+ 85 - 40
tests/test_curtain.py

@@ -1,20 +1,18 @@
-import pytest
-
 from typing import Any
+from unittest.mock import Mock
 
+import pytest
 from bleak.backends.device import BLEDevice
 
 from switchbot import SwitchBotAdvertisement, SwitchbotModel
 from switchbot.devices import curtain
 
-from test_adv_parser import generate_ble_device
-
-from unittest.mock import Mock
+from .test_adv_parser import generate_ble_device
 
 
 def set_advertisement_data(ble_device: BLEDevice, in_motion: bool, position: int):
     """Set advertisement data with defaults."""
-    
+
     return SwitchBotAdvertisement(
         address="aa:bb:cc:dd:ee:ff",
         data={
@@ -37,71 +35,102 @@ def set_advertisement_data(ble_device: BLEDevice, in_motion: bool, position: int
         active=True,
     )
 
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 def test_device_passive_not_in_motion(reverse_mode):
     """Test passive not in motion advertisement."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, False, 0))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, False, 0)
+    )
 
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is False
 
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 def test_device_passive_opening(reverse_mode):
     """Test passive opening advertisement."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 0))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 10))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 0)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 10)
+    )
 
     assert curtain_device.is_opening() is True
     assert curtain_device.is_closing() is False
 
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 def test_device_passive_closing(reverse_mode):
     """Test passive closing advertisement."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 100))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 90))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 100)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 90)
+    )
 
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is True
 
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 def test_device_passive_opening_then_stop(reverse_mode):
     """Test passive stopped after opening advertisement."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 0))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 10))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, False, 10))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 0)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 10)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, False, 10)
+    )
 
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is False
 
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 def test_device_passive_closing_then_stop(reverse_mode):
     """Test passive stopped after closing advertisement."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 100))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 90))
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, False, 90))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 100)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 90)
+    )
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, False, 90)
+    )
 
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is False
 
+
 @pytest.mark.asyncio
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 async def test_device_active_not_in_motion(reverse_mode):
     """Test active not in motion."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, False, 0))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, False, 0)
+    )
+
+    basic_info = bytes([0, 0, 0, 0, 0, 0, 100, 0])
 
-    basic_info = bytes([0,0,0,0,0,0,100,0])
     async def custom_implementation():
         return basic_info
 
@@ -112,15 +141,19 @@ async def test_device_active_not_in_motion(reverse_mode):
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is False
 
+
 @pytest.mark.asyncio
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 async def test_device_active_opening(reverse_mode):
     """Test active opening."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 0))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 0)
+    )
+
+    basic_info = bytes([0, 0, 0, 0, 0, 67, 10, 0])
 
-    basic_info = bytes([0,0,0,0,0,67,10,0])
     async def custom_implementation():
         return basic_info
 
@@ -131,15 +164,19 @@ async def test_device_active_opening(reverse_mode):
     assert curtain_device.is_opening() is True
     assert curtain_device.is_closing() is False
 
+
 @pytest.mark.asyncio
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 async def test_device_active_closing(reverse_mode):
     """Test active closing."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 100))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 100)
+    )
+
+    basic_info = bytes([0, 0, 0, 0, 0, 67, 90, 0])
 
-    basic_info = bytes([0,0,0,0,0,67,90,0])
     async def custom_implementation():
         return basic_info
 
@@ -150,15 +187,19 @@ async def test_device_active_closing(reverse_mode):
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is True
 
+
 @pytest.mark.asyncio
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 async def test_device_active_opening_then_stop(reverse_mode):
     """Test active stopped after opening."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 0))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 0)
+    )
+
+    basic_info = bytes([0, 0, 0, 0, 0, 67, 10, 0])
 
-    basic_info = bytes([0,0,0,0,0,67,10,0])
     async def custom_implementation():
         return basic_info
 
@@ -166,22 +207,26 @@ async def test_device_active_opening_then_stop(reverse_mode):
 
     await curtain_device.get_basic_info()
 
-    basic_info = bytes([0,0,0,0,0,0,10,0])
+    basic_info = bytes([0, 0, 0, 0, 0, 0, 10, 0])
 
     await curtain_device.get_basic_info()
 
     assert curtain_device.is_opening() is False
     assert curtain_device.is_closing() is False
 
+
 @pytest.mark.asyncio
-@pytest.mark.parametrize("reverse_mode", [(True),(False)])
+@pytest.mark.parametrize("reverse_mode", [(True), (False)])
 async def test_device_active_closing_then_stop(reverse_mode):
     """Test active stopped after closing."""
     ble_device = generate_ble_device("aa:bb:cc:dd:ee:ff", "any")
     curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=reverse_mode)
-    curtain_device.update_from_advertisement(set_advertisement_data(ble_device, True, 100))
+    curtain_device.update_from_advertisement(
+        set_advertisement_data(ble_device, True, 100)
+    )
+
+    basic_info = bytes([0, 0, 0, 0, 0, 67, 90, 0])
 
-    basic_info = bytes([0,0,0,0,0,67,90,0])
     async def custom_implementation():
         return basic_info
 
@@ -189,9 +234,9 @@ async def test_device_active_closing_then_stop(reverse_mode):
 
     await curtain_device.get_basic_info()
 
-    basic_info = bytes([0,0,0,0,0,0,90,0])
+    basic_info = bytes([0, 0, 0, 0, 0, 0, 90, 0])
 
     await curtain_device.get_basic_info()
 
     assert curtain_device.is_opening() is False
-    assert curtain_device.is_closing() is False
+    assert curtain_device.is_closing() is False