Beispiel #1
0
	def test_update_add(self):
		dl = DeviceList()

		dl.update(rf_address=RFAddr('122b65'), serial='123', name='foobar')
		self.assertEqual(dl, [
			Device(rf_address=RFAddr('122b65'), serial='123', name='foobar')
		])
Beispiel #2
0
	def test_for_room(self):
		dl = DeviceList()
		self.assertEqual(list(dl.for_room(0)), [])

		dev = Device(rf_address=RFAddr('122b65'), serial='123', name='foobar', room_id=1)
		dl.append(dev)
		self.assertEqual(list(dl.for_room(0)), [])
		self.assertEqual(list(dl.for_room(1)), [dev])
Beispiel #3
0
	def test_contains(self):
		dl = DeviceList()
		dl.append(Device(rf_address=RFAddr('122b65'), serial='123', name='foobar'))

		self.assertTrue('foobar' in dl)
		self.assertTrue(RFAddr('122b65') in dl)
		self.assertTrue(bytearray([0x12, 0x2b, 0x65]) in dl)
		self.assertFalse(True in dl)
		self.assertFalse(1 in dl)
Beispiel #4
0
    def test_contains(self):
        dl = DeviceList()
        dl.append(
            Device(rf_address=RFAddr('122b65'), serial='123', name='foobar'))

        self.assertTrue('foobar' in dl)
        self.assertTrue(RFAddr('122b65') in dl)
        self.assertTrue(bytearray([0x12, 0x2b, 0x65]) in dl)
        self.assertFalse(True in dl)
        self.assertFalse(1 in dl)
Beispiel #5
0
	def test_update(self):
		for k, v in (
			('rf_address', '122b65'),
			('name', 'foobar'),
		):
			dl = DeviceList([
				Device(rf_address=RFAddr('122b65'), serial='123', name='foobar', room_id=0)
			])
			dl.update(room_id=1, **{k:v})

			self.assertEqual(dl, [
				Device(rf_address=RFAddr('122b65'), serial='123', name='foobar', room_id=1)
			])
Beispiel #6
0
    def test_update_add(self):
        dl = DeviceList()

        dl.update(rf_address=RFAddr('122b65'),
                  serial='123',
                  name='foobar',
                  battery_low=False)
        self.assertEqual(dl, [
            Device(rf_address=RFAddr('122b65'),
                   serial='123',
                   name='foobar',
                   battery_low=False)
        ])
Beispiel #7
0
    def test_update(self):
        for k, v in (
            ('rf_address', '122b65'),
            ('name', 'foobar'),
        ):
            dl = DeviceList([
                Device(rf_address=RFAddr('122b65'),
                       serial='123',
                       name='foobar',
                       room_id=0,
                       battery_low=False)
            ])
            dl.update(room_id=1, **{k: v})

            self.assertEqual(dl, [
                Device(rf_address=RFAddr('122b65'),
                       serial='123',
                       name='foobar',
                       room_id=1,
                       battery_low=False)
            ])
Beispiel #8
0
	def test_get(self):
		dev = Device(rf_address=RFAddr('122b65'), serial='123', name='foobar')
		dl = DeviceList([dev])

		self.assertIsNone(dl.get())

		self.assertEqual(dl.get(rf_address='122b65'), dev)
		self.assertEqual(dl.get(rf_address='122b65', serial='123'), dev)
		self.assertEqual(dl.get(rf_address='122b65', serial='123', name='foobar'), dev)
		self.assertIsNone(dl.get(rf_address='122b65', serial='123', name='foobar', blah='blubb'))
		self.assertIsNone(dl.get(rf_address='foo'))
Beispiel #9
0
    def test_get(self):
        dev = Device(rf_address=RFAddr('122b65'), serial='123', name='foobar')
        dl = DeviceList([dev])

        self.assertIsNone(dl.get())

        self.assertEqual(dl.get(rf_address='122b65'), dev)
        self.assertEqual(dl.get(rf_address='122b65', serial='123'), dev)
        self.assertEqual(
            dl.get(rf_address='122b65', serial='123', name='foobar'), dev)
        self.assertIsNone(
            dl.get(rf_address='122b65',
                   serial='123',
                   name='foobar',
                   blah='blubb'))
        self.assertIsNone(dl.get(rf_address='foo'))
Beispiel #10
0
    def test_for_room(self):
        dl = DeviceList()
        self.assertEqual(list(dl.for_room(0)), [])

        dev = Device(rf_address=RFAddr('122b65'),
                     serial='123',
                     name='foobar',
                     room_id=1)
        dl.append(dev)
        self.assertEqual(list(dl.for_room(0)), [])
        self.assertEqual(list(dl.for_room(1)), [dev])
Beispiel #11
0
    def __init__(self, *args, **kwargs):
        addr = None
        port = 62910

        if not args:
            addr = kwargs.get('address', addr) or addr
            port = kwargs.get('port', port) or port
        if len(args) == 1:
            if isinstance(args[0], DiscoveryNetworkConfigurationResponse):
                addr = args[0].ip_address
            else:
                addr, = args
        elif len(args) == 2:
            addr, port = args

        self.addr_port = addr, port
        self._socket = None
        self._devices = DeviceList()
        self._cube_info = None
        self._ntp_servers = None
        self.received_messages = {}
Beispiel #12
0
    def test_handle_message(self):
        c = Cube(None, None)

        msg = HelloResponse(HelloResponseBytes)
        c.handle_message(msg)
        self.assertEqual(c.info, msg)

        msg = FResponse(b"ntp.homematic.com,ntp.homematic.com")
        c.handle_message(msg)
        self.assertEqual(c._ntp_servers,
                         ['ntp.homematic.com', 'ntp.homematic.com'])

        msg = MResponse(MResponseBytes)
        c.handle_message(msg)
        self.assertEqual(c.devices, [
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1,
                   device_type=2),
        ])

        c = Cube(None, None)
        c._devices = DeviceList([
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=2,
                   device_type=2),
        ])
        msg = MResponse(MResponseBytes)
        c.handle_message(msg)
        self.assertEqual(c.devices, [
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1,
                   device_type=2),
        ])

        msg = ConfigurationResponse(ThermostatConfigurationBytes)
        c.handle_message(msg)
        self.assertEqual(c.devices, [
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1,
                   configuration=msg,
                   device_type=2),
        ])

        c = Cube(None, None)
        c._devices = DeviceList([
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1),
        ])
        lresp = LResponse("BhIrZfcSGWQ8AOsA")
        c.handle_message(lresp)
        self.assertEqual(c.devices, [
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1,
                   settings=lresp.responses[0]),
        ])
        msg = ConfigurationResponse(ThermostatConfigurationBytes)
        c.handle_message(msg)
        self.assertEqual(c.devices, [
            Device(rf_address='122B65',
                   serial='MEQ1472997',
                   name='Heizung',
                   room_id=1,
                   configuration=msg,
                   settings=lresp.responses[0]),
        ])
        # Test doesn't work, somehow the extended LResponse is wrong...
        lrespext = LResponse("CxIrZfcSGWQ8AOsF")
        c.handle_message(lrespext)