def setUp(self): """ Create a node object for each test. """ self.maxDiff = None self.hub_ser = Serial() self.hub_obj = ZBHub(self.hub_ser) self.hub_obj.addr_long = b'\x00\x1e\x5e\x09\x02\x14\xc5\xab' self.hub_obj.addr_short = b'\x88\xd2' self.device_ser = Serial() self.device_obj = ZBDevice(self.device_ser)
def setUp(self): """ Create a node object for each test. """ self.ser = Serial() self.device_obj = ZBSmartPlug(self.ser) self.device_obj.addr_long = b'\x00\x1e\x5e\x09\x02\x14\xc5\xab'
def setUp(self): """ Create a node object for each test. """ self.ser = Serial() self.node_obj = Node() self.node_obj.addr_long = b'\x00\x00\x00\x00\x00\x00\x00\x00'
def setUp(self): """ Create a fake read device for each test. """ self.device = Serial() self.device.set_read_data("test")
class TestFakeSerialRead(unittest.TestCase): """ Fake Serial class should work as intended to emulate reading from a serial port. """ def setUp(self): """ Create a fake read device for each test. """ self.device = Serial() self.device.set_read_data("test") def test_read_single_byte(self): """ Reading one byte at a time should work as expected. """ self.assertEqual(self.device.read(), 't') self.assertEqual(self.device.read(), 'e') self.assertEqual(self.device.read(), 's') self.assertEqual(self.device.read(), 't') def test_read_multiple_bytes(self): """ Reading multiple bytes at a time should work as expected. """ self.assertEqual(self.device.read(3), 'tes') self.assertEqual(self.device.read(), 't') def test_write(self): """ Test serial write function. """ self.device.write("Hello World") self.assertEqual(self.device.get_data_written(), "Hello World") def test_open(self): """ Test open(), close() and isOpen() functions. """ self.device.open() self.assertEqual(self.device.isOpen(), True) self.device.close() self.assertEqual(self.device.isOpen(), False) def test_get_settings_dict(self): """ Test getSettingsDict() function returns dictionary of settings. """ expected = { 'timeout': 1, 'parity': 'N', 'baudrate': 19200, 'bytesize': 8, 'stopbits': 1, 'xonxoff': 0, 'rtscts': 0 } self.assertEqual(self.device.getSettingsDict(), expected) if __name__ == '__main__': unittest.main(verbosity=2)
def setUp(self): """ Create a node object for each test. """ self.ser = Serial() self.device_obj = ZBSensor(self.ser)
class TestZBHub(unittest.TestCase): """ Test PyAlertMe ZBHub Class. """ def setUp(self): """ Create a node object for each test. """ self.maxDiff = None self.hub_ser = Serial() self.hub_obj = ZBHub(self.hub_ser) self.hub_obj.addr_long = b'\x00\x1e\x5e\x09\x02\x14\xc5\xab' self.hub_obj.addr_short = b'\x88\xd2' self.device_ser = Serial() self.device_obj = ZBDevice(self.device_ser) def tearDown(self): """ Teardown node object. """ self.hub_obj.halt() self.device_obj.halt() def test_receive_message(self): """ Test Receive Message. """ # First, lets manually construct a Version message and send it into the Hub. message = { 'source_addr_long': b'\x00\ro\x00\x03\xbb\xb9\xf8', 'source_addr': b'\x88\x9f', 'source_endpoint': b'\x02', 'dest_endpoint': b'\x02', 'profile': b'\xc2\x16', 'cluster': b'\x00\xf6', 'id': 'rx_explicit', 'options': b'\x01', 'rf_data': b'\tq\xfeMN\xf8\xb9\xbb\x03\x00o\r\x009\x10\x07\x00\x00)\x00\x01\x0bAlertMe.com\tSmartPlug\n2013-09-26' } self.hub_obj.receive_message(message) result = self.hub_obj.list_devices() expected = { '00:0d:6f:00:03:bb:b9:f8': { 'type': 'SmartPlug', 'version': 20045, 'manu': 'AlertMe.com' } } self.assertEqual(result, expected) # Next, lets get the class to generate a Version message and send it into the Hub. params = { 'type': 'Generic', 'version': 12345, 'manu': 'PyAlertMe', 'manu_date': '2017-01-01' } message = self.device_obj.generate_message('version_info_update', params) message['id'] = 'rx_explicit' message['source_addr'] = b'\x88\xfd' message['source_addr_long'] = b'\x00\x0d\x6f\x00\x00\x00\xff\xff' message['rf_data'] = message['data'] self.hub_obj.receive_message(message) result = self.hub_obj.list_devices() expected = { '00:0d:6f:00:03:bb:b9:f8': { 'type': 'SmartPlug', 'version': 20045, 'manu': 'AlertMe.com' }, '00:0d:6f:00:00:00:ff:ff': { 'type': 'Generic', 'version': 12345, 'manu': 'PyAlertMe' } } self.assertEqual(result, expected) # Test get device result = self.hub_obj.get_device('00:0d:6f:00:03:bb:b9:f8') self.assertTrue(result['type'] == 'SmartPlug') self.assertTrue(result['version'] == 20045) def test_mock_serial(self): """ Test Mock Serial """ # Match Descriptor Request message = { 'source_addr_long': b'\x00\x13\xa2\x00@\xa2;\t', 'source_addr': 'RK', 'source_endpoint': b'\x00', 'dest_endpoint': b'\x00', 'profile': b'\x00\x00', 'cluster': b'\x00\x06', 'id': 'rx_explicit', 'options': b'\x01', 'rf_data': b'\x01\xfd\xff\x16\xc2\x00\x01\xf0\x00' } self.hub_obj.receive_message(message) result = self.hub_ser.get_data_written() expected = b'~\x00\x1b}1\x00\x00}3\xa2\x00@\xa2;\tRK\x00\x00\x80\x06\x00\x00\x00\x00\x01\x00KR\x02\x00\x02N' self.assertEqual(result, expected)
def setUp(self): """ Create a node object for each test. """ self.ser = Serial() self.node_obj = ZBNode(self.ser)