示例#1
0
    def test_load_interface_call(self, mock_apicall):
        """Test if interface is called correctly."""
        async def return_async_value(val):
            return val

        pyvlx = PyVLX()
        devices = Devices(pyvlx)
        get_response = \
            '{"token":"aEGjVG0T3jj1VNEJTFmMBw==","result":true,"deviceSta' + \
            'tus":"IDLE","data":[{"name": "Volet roulant cour", "id": 0, ' + \
            '"scenes": ["Fermer volet cour", "Ouvrir volet cour"], "categ' + \
            'ory": "Roller shutter", "typeId": 2, "subtype": 0}, {"name":' + \
            '"Fenêtre cour", "id": 1, "scenes": ["Fermer fenetre cour", "' + \
            'Ouvrir fenetre cour"], "category": "Window opener", "typeId"' + \
            ': 4, "subtype": 1}, {"name": "Fenêtre jardin", "id": 2, "sce' + \
            'nes": ["Fermer fenetre jardin", "Ouvrir fenetre jardin"], "c' + \
            'ategory": "Window opener", "typeId": 4, "subtype": 1}, {"nam' + \
            'e": "Volet roulant jardin", "id": 3, "scenes": ["Fermer vole' + \
            't jardin", "Ouvrir Volet jardin"], "category": "Roller shutt' + \
            'er", "typeId": 2, "subtype": 0}]}'
        mock_apicall.return_value = return_async_value(
            json.loads(get_response))
        self.loop.run_until_complete(asyncio.Task(devices.load()))
        mock_apicall.assert_called_with('products', 'get')
        self.assertEqual(len(devices), 4)
        self.assertEqual(devices[0],
                         RollerShutter(pyvlx, 0, 'Volet roulant cour', 0, 2))
        self.assertEqual(devices[1], Window(pyvlx, 1, 'Fenêtre cour', 1, 4))
        self.assertEqual(devices[2], Window(pyvlx, 2, 'Fenêtre jardin', 1, 4))
        self.assertEqual(devices[3],
                         RollerShutter(pyvlx, 3, 'Volet roulant jardin', 0, 2))
示例#2
0
 def test_load_windows_and_roller_shutters(self):
     """Test load configuration with windows and rollershutters."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     get_response = \
         '{"token":"aEGjVG0T3jj1VNEJTFmMBw==","result":true,"deviceSta' + \
         'tus":"IDLE","data":[{"name": "Volet roulant cour", "id": 0, ' + \
         '"scenes": ["Fermer volet cour", "Ouvrir volet cour"], "categ' + \
         'ory": "Roller shutter", "typeId": 2, "subtype": 0}, {"name":' + \
         '"Fenêtre cour", "id": 1, "scenes": ["Fermer fenetre cour", "' + \
         'Ouvrir fenetre cour"], "category": "Window opener", "typeId"' + \
         ': 4, "subtype": 1}, {"name": "Fenêtre jardin", "id": 2, "sce' + \
         'nes": ["Fermer fenetre jardin", "Ouvrir fenetre jardin"], "c' + \
         'ategory": "Window opener", "typeId": 4, "subtype": 1}, {"nam' + \
         'e": "Volet roulant jardin", "id": 3, "scenes": ["Fermer vole' + \
         't jardin", "Ouvrir Volet jardin"], "category": "Roller shutt' + \
         'er", "typeId": 2, "subtype": 0}]}'
     devices.data_import(json.loads(get_response))
     self.assertEqual(len(devices), 4)
     self.assertEqual(devices[0],
                      RollerShutter(pyvlx, 0, 'Volet roulant cour', 0, 2))
     self.assertEqual(devices[1], Window(pyvlx, 1, 'Fenêtre cour', 1, 4))
     self.assertEqual(devices[2], Window(pyvlx, 2, 'Fenêtre jardin', 1, 4))
     self.assertEqual(devices[3],
                      RollerShutter(pyvlx, 3, 'Volet roulant jardin', 0, 2))
示例#3
0
 def test_clear(self):
     """Test clear() method."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, "Window_1", "aa:bb:aa:bb:aa:bb:aa:00"))
     nodes.add(Window(pyvlx, 1, "Window_2", "aa:bb:aa:bb:aa:bb:aa:01"))
     nodes.clear()
     self.assertEqual(len(nodes), 0)
示例#4
0
 def test_clear(self):
     """Test clear() method."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, 'Window_1'))
     nodes.add(Window(pyvlx, 1, 'Window_2'))
     nodes.clear()
     self.assertEqual(len(nodes), 0)
示例#5
0
 def test_len(self):
     """Test len."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, 'Window_1'))
     nodes.add(Window(pyvlx, 1, 'Window_2'))
     nodes.add(Window(pyvlx, 2, 'Window_3'))
     nodes.add(Window(pyvlx, 3, 'Window_4'))
     self.assertEqual(len(nodes), 4)
示例#6
0
 def test_len(self):
     """Test len."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, "Window_1", "aa:bb:aa:bb:aa:bb:aa:00"))
     nodes.add(Window(pyvlx, 1, "Window_2", "aa:bb:aa:bb:aa:bb:aa:01"))
     nodes.add(Window(pyvlx, 2, "Window_3", "aa:bb:aa:bb:aa:bb:aa:02"))
     nodes.add(Window(pyvlx, 3, "Window_4", "aa:bb:aa:bb:aa:bb:aa:03"))
     self.assertEqual(len(nodes), 4)
示例#7
0
 def test_iter(self):
     """Test iterator."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window1 = Window(pyvlx, 0, "Window_1", "aa:bb:aa:bb:aa:bb:aa:00")
     nodes.add(window1)
     window2 = Window(pyvlx, 1, "Window_2", "aa:bb:aa:bb:aa:bb:aa:01")
     nodes.add(window2)
     window3 = Window(pyvlx, 2, "Window_3", "aa:bb:aa:bb:aa:bb:aa:02")
     nodes.add(window3)
     self.assertEqual(tuple(nodes.__iter__()), (window1, window2, window3))
示例#8
0
 def test_iter(self):
     """Test iterator."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window1 = Window(pyvlx, 0, 'Window_1')
     nodes.add(window1)
     window2 = Window(pyvlx, 1, 'Window_2')
     nodes.add(window2)
     window3 = Window(pyvlx, 2, 'Window_3')
     nodes.add(window3)
     self.assertEqual(tuple(nodes.__iter__()), (window1, window2, window3))
示例#9
0
 def test_add_same_object(self):
     """Test adding object with same node_id."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, 'Window_1'))
     nodes.add(Window(pyvlx, 1, 'Window_2'))
     nodes.add(Window(pyvlx, 2, 'Window_3'))
     nodes.add(Window(pyvlx, 1, 'Window_2_same_id'))
     self.assertEqual(len(nodes), 3)
     self.assertEqual(nodes[1].name, 'Window_2_same_id')
示例#10
0
 def test_add_same_object(self):
     """Test adding object with same node_id."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     self.assertEqual(len(nodes), 0)
     nodes.add(Window(pyvlx, 0, "Window_1", "aa:bb:aa:bb:aa:bb:aa:00"))
     nodes.add(Window(pyvlx, 1, "Window_2", "aa:bb:aa:bb:aa:bb:aa:01"))
     nodes.add(Window(pyvlx, 2, "Window_3", "aa:bb:aa:bb:aa:bb:aa:02"))
     nodes.add(
         Window(pyvlx, 1, "Window_2_same_id", "aa:bb:aa:bb:aa:bb:aa:01"))
     self.assertEqual(len(nodes), 3)
     self.assertEqual(nodes[1].name, "Window_2_same_id")
示例#11
0
 def test_contains_item(self):
     """Test contains operator."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window1 = Window(pyvlx, 23, 'Window_1')
     nodes.add(window1)
     window2 = Window(pyvlx, 42, 'Window_2')  # not added
     self.assertTrue('Window_1' in nodes)
     self.assertTrue(23 in nodes)
     self.assertTrue(window1 in nodes)
     self.assertFalse('Window_2' in nodes)
     self.assertFalse(42 in nodes)
     self.assertFalse(window2 in nodes)
示例#12
0
 def test_iter(self):
     """Test iterator."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     window1 = Window(pyvlx, 0, 'Window_1', 0, 0)
     devices.add(window1)
     window2 = Window(pyvlx, 1, 'Window_2', 0, 0)
     devices.add(window2)
     window3 = Window(pyvlx, 2, 'Window_3', 0, 0)
     devices.add(window3)
     window4 = Window(pyvlx, 3, 'Window_4', 0, 0)
     devices.add(window4)
     self.assertEqual(tuple(devices.__iter__()),
                      (window1, window2, window3, window4))
示例#13
0
 def test_contains_item(self):
     """Test contains operator."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window1 = Window(pyvlx, 23, "Window_1", "aa:bb:aa:bb:aa:bb:aa:23")
     nodes.add(window1)
     window2 = Window(pyvlx, 42, "Window_2",
                      "aa:bb:aa:bb:aa:bb:aa:42")  # not added
     self.assertTrue("Window_1" in nodes)
     self.assertTrue(23 in nodes)
     self.assertTrue(window1 in nodes)
     self.assertFalse("Window_2" in nodes)
     self.assertFalse(42 in nodes)
     self.assertFalse(window2 in nodes)
示例#14
0
 def test_str(self):
     """Test string representation of Window object."""
     pyvlx = PyVLX()
     window = Window(pyvlx, 0, 'Test Window', 0, 2)
     self.assertEqual(
         str(window), '<Window name="Test Window" id="0" subtype="0" '
         'typeId="2" />')
示例#15
0
 def test_len(self):
     """Test len."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     self.assertEqual(len(devices), 0)
     window1 = Window(pyvlx, 0, 'Window_1', 0, 0)
     devices.add(window1)
     self.assertEqual(len(devices), 1)
     window2 = Window(pyvlx, 1, 'Window_2', 0, 0)
     devices.add(window2)
     self.assertEqual(len(devices), 2)
     window3 = Window(pyvlx, 2, 'Window_3', 0, 0)
     devices.add(window3)
     self.assertEqual(len(devices), 3)
     window4 = Window(pyvlx, 3, 'Window_4', 0, 0)
     devices.add(window4)
     self.assertEqual(len(devices), 4)
示例#16
0
 def test_window(self):
     """Test convert_frame_to_node with window."""
     frame = FrameGetNodeInformationNotification()
     frame.node_id = 23
     frame.name = "Fnord23"
     frame.node_type = NodeTypeWithSubtype.WINDOW_OPENER
     pyvlx = PyVLX()
     node = convert_frame_to_node(pyvlx, frame)
     self.assertEqual(node, Window(pyvlx=pyvlx, name="Fnord23", node_id=23))
示例#17
0
 def test_get_item_failed(self):
     """Test get_item with non existing object."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window1 = Window(pyvlx, 0, "Window_1", "aa:bb:aa:bb:aa:bb:aa:00")
     nodes.add(window1)
     with self.assertRaises(KeyError):
         nodes["Window_2"]  # pylint: disable=pointless-statement
     with self.assertRaises(KeyError):
         nodes[1]  # pylint: disable=pointless-statement
示例#18
0
 def test_window_str(self):
     """Test string representation of Window object."""
     pyvlx = PyVLX()
     window = Window(pyvlx=pyvlx,
                     node_id=23,
                     name='Test Window',
                     rain_sensor=True)
     self.assertEqual(
         str(window),
         '<Window name="Test Window" node_id="23" rain_sensor=True/>')
示例#19
0
 def test_get_item_failed(self):
     """Test get_item with non existing object."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     window1 = Window(pyvlx, 0, 'Window_1', 0, 0)
     devices.add(window1)
     with self.assertRaises(KeyError):
         devices['Window_2']  # pylint: disable=pointless-statement
     with self.assertRaises(IndexError):
         devices[1]  # pylint: disable=pointless-statement
示例#20
0
 def test_get_item(self):
     """Test get_item."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     window1 = Window(pyvlx, 0, 'Window_1', 0, 0)
     devices.add(window1)
     window2 = Window(pyvlx, 1, 'Window_2', 0, 0)
     devices.add(window2)
     window3 = Window(pyvlx, 2, 'Window_3', 0, 0)
     devices.add(window3)
     window4 = Window(pyvlx, 3, 'Window_4', 0, 0)
     devices.add(window4)
     self.assertEqual(devices['Window_1'], window1)
     self.assertEqual(devices['Window_2'], window2)
     self.assertEqual(devices['Window_3'], window3)
     self.assertEqual(devices['Window_4'], window4)
     self.assertEqual(devices[0], window1)
     self.assertEqual(devices[1], window2)
     self.assertEqual(devices[2], window3)
     self.assertEqual(devices[3], window4)
示例#21
0
 def test_window_with_rain_sensor(self):
     """Test convert_frame_to_node with window with rain sensor."""
     frame = FrameGetNodeInformationNotification()
     frame.node_id = 23
     frame.name = "Fnord23"
     frame.node_type = NodeTypeWithSubtype.WINDOW_OPENER_WITH_RAIN_SENSOR
     pyvlx = PyVLX()
     node = convert_frame_to_node(pyvlx, frame)
     self.assertEqual(
         node,
         Window(pyvlx=pyvlx, name="Fnord23", node_id=23, rain_sensor=True))
示例#22
0
 def test_load_windows(self):
     """Test load configuration with windows."""
     pyvlx = PyVLX()
     devices = Devices(pyvlx)
     get_response = \
         '{"token":"aEGjVG0T3jj1VNEJTFmMBw==","result":true,"deviceSta' + \
         'tus":"IDLE","data":[{"name":"Window 1","category":"Window op' + \
         'ener","id":0,"typeId":4,"subtype":1,"scenes":["All windows c' + \
         'losed","Sleeping wide Open","Sleeping slight open"]},{"name"' + \
         ':"Window 2","category":"Window opener","id":1,"typeId":4,"su' + \
         'btype":1,"scenes":["All windows closed","Sleeping wide Open"' + \
         ',"Sleeping slight open"]},{"name":"Window 3","category":"Win' + \
         'dow opener","id":2,"typeId":4,"subtype":1,"scenes":["All win' + \
         'dows closed","Sleeping wide Open","Sleeping slight open"]},{' + \
         '"name":"Window 4","category":"Window opener","id":3,"typeId"' + \
         ':4,"subtype":1,"scenes":["All windows closed","Sleeping wide' + \
         'Open","Sleeping slight open"]}],"errors":[]}'
     devices.data_import(json.loads(get_response))
     self.assertEqual(len(devices), 4)
     self.assertEqual(devices[0], Window(pyvlx, 0, 'Window 1', 1, 4))
     self.assertEqual(devices[1], Window(pyvlx, 1, 'Window 2', 1, 4))
     self.assertEqual(devices[2], Window(pyvlx, 2, 'Window 3', 1, 4))
     self.assertEqual(devices[3], Window(pyvlx, 3, 'Window 4', 1, 4))
示例#23
0
 def test_window_str(self):
     """Test string representation of Window object."""
     pyvlx = PyVLX()
     window = Window(
         pyvlx=pyvlx,
         node_id=23,
         name="Test Window",
         rain_sensor=True,
         serial_number="aa:bb:aa:bb:aa:bb:aa:23",
     )
     self.assertEqual(
         str(window),
         '<Window name="Test Window" node_id="23" rain_sensor=True serial_number="aa:bb:aa:bb:aa:bb:aa:23" position="UNKNOWN"/>',
     )
示例#24
0
 def test_get_item(self):
     """Test get_item."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window = Window(pyvlx, 0, 'Window')
     nodes.add(window)
     blind = Blind(pyvlx, 1, 'Blind')
     nodes.add(blind)
     roller_shutter = RollerShutter(pyvlx, 4, 'Roller Shutter')
     nodes.add(roller_shutter)
     self.assertEqual(nodes['Window'], window)
     self.assertEqual(nodes['Blind'], blind)
     self.assertEqual(nodes['Roller Shutter'], roller_shutter)
     self.assertEqual(nodes[0], window)
     self.assertEqual(nodes[1], blind)
     self.assertEqual(nodes[4], roller_shutter)
示例#25
0
 def test_get_item(self):
     """Test get_item."""
     pyvlx = PyVLX()
     nodes = Nodes(pyvlx)
     window = Window(pyvlx, 0, "Window", "aa:bb:aa:bb:aa:bb:aa:00")
     nodes.add(window)
     blind = Blind(pyvlx, 1, "Blind", "aa:bb:aa:bb:aa:bb:aa:01")
     nodes.add(blind)
     roller_shutter = RollerShutter(pyvlx, 4, "Roller Shutter",
                                    "aa:bb:aa:bb:aa:bb:aa:04")
     nodes.add(roller_shutter)
     self.assertEqual(nodes["Window"], window)
     self.assertEqual(nodes["Blind"], blind)
     self.assertEqual(nodes["Roller Shutter"], roller_shutter)
     self.assertEqual(nodes[0], window)
     self.assertEqual(nodes[1], blind)
     self.assertEqual(nodes[4], roller_shutter)
示例#26
0
 def test_get_name(self):
     """Test get_name()."""
     pyvlx = PyVLX()
     window = Window(pyvlx, 0, 'Test Window', 0, 2)
     self.assertEqual(window.get_name(), "Test Window")