def test_create_id(self): for i in range(0xFF): br = Baudrate(i, baudtype=Baudrate.Type.Identifier) self.assertEqual(br.get_bytes(), struct.pack('B', i)) with self.assertRaises(ValueError): br = Baudrate(0x100, baudtype=Baudrate.Type.Identifier)
def test_change_type(self): br = Baudrate(115200, baudtype=Baudrate.Type.Fixed) br2 = br.make_new_type(Baudrate.Type.Specific) self.assertEqual(br2.get_bytes(), b'\x01\xC2\x00') br = Baudrate(115200, baudtype=Baudrate.Type.Specific) br2 = br.make_new_type(Baudrate.Type.Fixed) self.assertEqual(br2.get_bytes(), b'\x05')
def test_oob_values(self): with self.assertRaises(ValueError): br = Baudrate(-1) with self.assertRaises(ValueError): br = Baudrate(1, baudtype=-1) with self.assertRaises(ValueError): br = Baudrate(1, baudtype=0xFF)
def _test_linkcontrol_verify_specific(self): baudrate = Baudrate(0x123456, baudtype=Baudrate.Type.Specific) response = self.udsclient.link_control(control_type=2, baudrate=baudrate) self.assertTrue(response.valid) self.assertTrue(response.positive) self.assertEqual(response.service_data.control_type_echo, 2)
def _test_linkcontrol_verify_fixed(self): baudrate = Baudrate(250000, baudtype=Baudrate.Type.Fixed) response = self.udsclient.link_control(control_type=1, baudrate=baudrate) self.assertTrue(response.valid) self.assertTrue(response.positive) self.assertEqual(response.service_data.control_type_echo, 1)
def _test_bad_param(self): with self.assertRaises(ValueError): self.udsclient.link_control(control_type='x') with self.assertRaises(ValueError): self.udsclient.link_control(control_type=0x80) with self.assertRaises(ValueError): self.udsclient.link_control(control_type=1) # Missing Baudrate with self.assertRaises(ValueError): self.udsclient.link_control(control_type=2) # Missing Baudrate with self.assertRaises(ValueError): self.udsclient.link_control( control_type=0, baudrate=Baudrate(500000)) # Baudrate is not needed with self.assertRaises(ValueError): self.udsclient.link_control( control_type=1, baudrate=1) # Baudrate should be Baudrate instance with self.assertRaises(ValueError): self.udsclient.link_control( control_type=1, baudrate='x') # Baudrate should be Baudrate instance
def _test_linkcontrol_verify_fixed_spr(self): baudrate = Baudrate(250000, baudtype=Baudrate.Type.Fixed) with self.udsclient.suppress_positive_response: response = self.udsclient.link_control(control_type=1, baudrate=baudrate) self.assertEqual(response, None) self.conn.fromuserqueue.get( timeout=0.2) #Avoid closing connection prematurely
def test_create_auto(self): # Direct ID br = Baudrate(1) self.assertEqual(br.get_bytes(), b'\x01') br = Baudrate(0xFF) self.assertEqual(br.get_bytes(), b'\xFF') # Fixed baudrate br = Baudrate(115200) self.assertEqual(br.get_bytes(), b'\x05') br = Baudrate(500000) self.assertEqual(br.get_bytes(), b'\x12') #Specific Baudrate: br = Baudrate(0x123456) self.assertEqual(br.get_bytes(), b'\x12\x34\x56')
def test_str_repr(self): br = Baudrate(115200, baudtype=Baudrate.Type.Fixed) str(br) br.__repr__()
def test_effective_baudrate(self): br = Baudrate(0x12, Baudrate.Type.Identifier) # 500kbits self.assertEqual(br.effective_baudrate(), 500000)
def test_create_specific(self): br = Baudrate(115200, baudtype=Baudrate.Type.Specific) self.assertEqual(br.get_bytes(), b'\x01\xC2\x00') with self.assertRaises(ValueError): br = Baudrate(0x1000000, baudtype=Baudrate.Type.Specific)
def test_create_fixed(self): br = Baudrate(115200, baudtype=Baudrate.Type.Fixed) self.assertEqual(br.get_bytes(), b'\x05') with self.assertRaises(ValueError): br = Baudrate(123456, baudtype=Baudrate.Type.Fixed)
def _test_linkcontrol_verify_specific_from_fixed(self): baudrate = Baudrate(500000, baudtype=Baudrate.Type.Fixed) response = self.udsclient.link_control(control_type=2, baudrate=baudrate) self.assertTrue(response.valid) self.assertTrue(response.positive)