def test_wrong_packets(self): ctrl_unit = ControlUnit() input_mex = "A57901351535057249088000050201512160653500000000000N000000000E0000605647080419055409" \ "0000000000000000FFFF1UUU00UUUUUU00000" ctrl_unit.decode_ascii(input_mex) input_mex = "32025891f8333b440100000001f3cd7256000000000000000000000010000e001d008100a3010000000000000000ec000000" ctrl_unit.decode_binary(binascii.unhexlify(input_mex)) # !linea 696 elif self.cup_lock == ControlUnit.CAPS_UNLOCKED: senza el!!!! input_mex = "A57901351535057248759000016201005082359590000000000N000000000E00000042003200322423170000000000000000FFF1FUUU11UUUUUU00000" ctrl_unit.decode_ascii(input_mex) ctrl_unit.check_values() ctrl_unit.encode_binary() input_mex = "A57901351535057209884000001201512201500090841426506N012350963E00000001000000001754170000000000000000F0FFFUUU00UUUUUU00000" ctrl_unit.decode_ascii(input_mex) ctrl_unit.check_values() ctrl_unit.encode_binary()
def test_check_values(self): ctrl_unit = ControlUnit() # Inizializzo le variabili ctrl_unit.imei = 351535057252702L ctrl_unit.driver = 1121 ctrl_unit.event = 7 ctrl_unit.unixtime = 1447501929 ctrl_unit.sat = 11 ctrl_unit.lat = 41.694336 ctrl_unit.lon = 12.599915 ctrl_unit.speed = 11.2 ctrl_unit.gasoline_r = 200.1 ctrl_unit.gasoline_l = 300.2 ctrl_unit.gasoline_f = 400.3 ctrl_unit.vin = 25.8 ctrl_unit.vbatt = 4.26 ctrl_unit.input_gasoline_r = 500.2 ctrl_unit.input_gasoline_l = 600.3 ctrl_unit.input_gasoline_f = 700.4 ctrl_unit.input_gasoline_tot = 8888 ctrl_unit.cup_r = ctrl_unit.CUP_CLOSE ctrl_unit.cup_l = ctrl_unit.CUP_OPEN ctrl_unit.cup_f = ctrl_unit.CUP_CLOSE ctrl_unit.engine = ctrl_unit.ENGINE_ON ctrl_unit.alarm = ctrl_unit.ALARM_UNARMED ctrl_unit.cup_lock = ctrl_unit.CAPS_UNLOCKED ctrl_unit.distance_travelled = 365.1 ctrl_unit.gas_station = 5 ctrl_unit.text_message = "Come va la trasmissione binaria?" ctrl_unit.plate = "AB324LR" # Provo a sbagliare lunghezza del campo IMEI, poi lo rendo alfanumerico, poi lo correggo ctrl_unit.imei = 35153505725270L with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.imei = 3515350572527021L with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.imei = "351535a57252702" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.imei = 351535057252702L result = ctrl_unit.check_values() self.assertEqual(result, True) # Parliamo ora del codice autista ctrl_unit.driver = "asd" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.driver = 10000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.driver = 1121 result = ctrl_unit.check_values() self.assertEqual(result, True) # Vediamo l'evento ctrl_unit.event = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.event = 256 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.event = 7 result = ctrl_unit.check_values() self.assertEqual(result, True) # La data ctrl_unit.unixtime = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.unixtime = 1447501929 result = ctrl_unit.check_values() self.assertEqual(result, True) # Il numero di satelliti ctrl_unit.sat = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.sat = 256 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.sat = 7 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo la latitudine ctrl_unit.lat = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.lat = 90.01 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lat = 91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lat = -90.01 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lat = -91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lat = 41.694336 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo la longitudine ctrl_unit.lon = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.lon = 181.01 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lon = 182 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lon = -181.01 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lon = -182 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.lon = 12.599915 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo la velocità ctrl_unit.speed = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.speed = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.speed = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.speed = 11.2 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo il carburante presente a destra, sinistra, e nel frigo ctrl_unit.gasoline_r = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.gasoline_r = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_r = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_r = 200.1 result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.gasoline_l = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.gasoline_l = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_l = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_l = 300.2 result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.gasoline_f = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.gasoline_f = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_f = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gasoline_f = 400.3 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controlliamo la tensione in ingresso ctrl_unit.vin = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.vin = 99.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.vin = 100 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.vin = 25.8 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controlliamo la tensione della batteria interna ctrl_unit.vbatt = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.vbatt = 9.991 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.vbatt = 10 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.vbatt = 4.26 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo il carburante presente a destra, sinistra, e nel frigo e totale ctrl_unit.input_gasoline_r = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.input_gasoline_r = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_r = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_r = 500.2 result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.input_gasoline_l = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.input_gasoline_l = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_l = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_l = 600.3 result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.input_gasoline_f = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.input_gasoline_f = 999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_f = 1000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_f = 700.4 result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.input_gasoline_tot = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.input_gasoline_tot = 10000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.input_gasoline_tot = 8888 result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo lo stato dei tappi ctrl_unit.cup_r = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.cup_r = 4 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.cup_r = ctrl_unit.CUP_OPEN result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_r = ctrl_unit.CUP_CLOSE result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_r = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_r = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_l = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.cup_l = 4 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.cup_l = ctrl_unit.CUP_CLOSE result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_l = ctrl_unit.CUP_OPEN result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_l = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_l = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_f = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.cup_f = 4 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.cup_f = ctrl_unit.CUP_OPEN result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_f = ctrl_unit.CUP_CLOSE result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_f = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_f = ctrl_unit.CUP_FAIL result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo lo stato del motore ctrl_unit.engine = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.engine = 2 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.engine = ctrl_unit.ENGINE_OFF result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.engine = ctrl_unit.ENGINE_ON result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo lo stato dell'allarme ctrl_unit.alarm = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.alarm = 2 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.alarm = ctrl_unit.ALARM_ARMED result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.alarm = ctrl_unit.ALARM_UNARMED result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo lo stato del blocco tappi ctrl_unit.cup_lock = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.cup_lock = 2 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.cup_lock = ctrl_unit.CAPS_LOCKED result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.cup_lock = ctrl_unit.CAPS_UNLOCKED result = ctrl_unit.check_values() self.assertEqual(result, True) # Controllo la distanza percorsa ctrl_unit.distance_travelled = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.distance_travelled = 9999.91 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.distance_travelled = 10000 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.distance_travelled = 365.1 result = ctrl_unit.check_values() self.assertEqual(result, True) # Vediamo l'ID della stazione di servizio ctrl_unit.gas_station = "a" with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.gas_station = 100 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gas_station = -1 with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.gas_station = 5 result = ctrl_unit.check_values() self.assertEqual(result, True) # Vediamo il messaggio di test per la chat ctrl_unit.text_message = 2.12 with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.text_message = 256 with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.text_message = 256L with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.text_message = "Questo messaggio di testo può essere arbitrariamente lungo e contenere al massimo" \ " 130 caratteri, ma questa eccede il limite fissato di 14 bytes" with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.text_message = "5" result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.text_message = "Questo messaggio di testo può essere arbitrariamente lungo e contenere al massimo " \ "130 caratteri, e questo non eccede il limite!!!" result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.text_message = "" result = ctrl_unit.check_values() self.assertEqual(result, True) # Vediamo la targa ctrl_unit.plate = 2.12 with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.plate = 256 with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.plate = 256L with self.assertRaises(TypeError): ctrl_unit.check_values() ctrl_unit.plate = "La targa dovrebbe essere una stringa di max 20 caratteri (vedi ad esempio i rimorchi)" with self.assertRaises(ValueError): ctrl_unit.check_values() ctrl_unit.plate = "5" result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.plate = "20 caratteri sono OK" result = ctrl_unit.check_values() self.assertEqual(result, True) ctrl_unit.plate = "" result = ctrl_unit.check_values() self.assertEqual(result, True)