Example #1
0
	def test_send_three_frames(self):
		def read_func():
			pass

		def write_func(data):
			write_func.data = data

		write_func.data = None

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.send('test1')
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test1', FRAME_DATA, 0))
		self.assertEqual(hdlc_c.get_senders_number(), 1)
		write_func.data = None
		hdlc_c.send('test2')
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test2', FRAME_DATA, 1))
		self.assertEqual(hdlc_c.get_senders_number(), 2)
		write_func.data = None
		hdlc_c.send('test3')
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test3', FRAME_DATA, 2))
		self.assertEqual(hdlc_c.get_senders_number(), 3)
		hdlc_c.stop()
Example #2
0
	def test_stop_before_start(self):
		def read_func():
			pass

		def write_func():
			pass

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.stop()
Example #3
0
	def test_receive_one_frame(self):
		def read_func():
			return frame_data('test', FRAME_DATA, 0)

		def write_func(data):
			write_func.data = data

		write_func.data = None

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.start()
		self.assertEqual(hdlc_c.get_data(), b'test')
		self.assertEqual(write_func.data, frame_data('', FRAME_ACK, 1))
		hdlc_c.stop()
Example #4
0
	def test_receive_three_frames(self):
		def read_func():
			data = frame_data('test' + str(read_func.i), FRAME_DATA, read_func.i)
			read_func.i += 1
			return data

		def write_func(data):
			pass

		read_func.i = 1

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.start()
		self.assertEqual(hdlc_c.get_data(), b'test1')
		self.assertEqual(hdlc_c.get_data(), b'test2')
		self.assertEqual(hdlc_c.get_data(), b'test3')
		hdlc_c.stop()
Example #5
0
	def test_send_frame_and_receive_nack(self):
		def read_func():
			return frame_data('', FRAME_NACK, 0)

		def write_func(data):
			write_func.data = data

		write_func.data = None

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.send('test')
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test', FRAME_DATA, 0))
		self.assertEqual(hdlc_c.get_senders_number(), 1)
		hdlc_c.start()
		sleep(1)
		self.assertEqual(hdlc_c.get_senders_number(), 1)
		hdlc_c.stop()
Example #6
0
	def test_send_one_frame_and_wait_timeout(self):
		def read_func():
			pass

		def write_func(data):
			write_func.data = data

		write_func.data = None

		hdlc_c = HDLController(read_func, write_func)
		hdlc_c.send('test')
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test', FRAME_DATA, 0))
		self.assertEqual(hdlc_c.get_senders_number(), 1)
		write_func.data = None
		while write_func.data == None: pass
		self.assertEqual(write_func.data, frame_data('test', FRAME_DATA, 0))
		self.assertEqual(hdlc_c.get_senders_number(), 1)
		hdlc_c.stop()
		'initial': 'serial_connection',
		'events': [
			{'name': 'serial_connection_ko', 'src': 'serial_connection', 'dst': 'serial_connection'},
			{'name': 'serial_connection_ok', 'src': 'serial_connection', 'dst': 'amqp_connection'},
			{'name': 'amqp_connection_ko', 'src': 'amqp_connection', 'dst': 'amqp_connection'},
			{'name': 'amqp_connection_ok', 'src': 'amqp_connection', 'dst': 'start_discovery'},
			{'name': 'uuid_received', 'src': 'start_discovery', 'dst': 'wait_for_resources'},
			{'name': 'stop_discovery_received', 'src': 'wait_for_resources', 'dst': 'stop_discovery'},
			{'name': 'ready', 'src': 'stop_discovery', 'dst': 'wait_for_data'},
		],
		'callbacks': {
			'onserial_connection': serial_connection,
			'onserial_connection_ko': serial_connection,
			'onserial_connection_ok': amqp_connection,
			'onreenterserial_connection': retry_connection,
			'onamqp_connection_ko': amqp_connection,
			'onamqp_connection_ok': start_discovery,
			'onreenteramqp_connection': retry_connection,
			'onuuid_received': wait_for_resources,
			'onstop_discovery_received': stop_discovery,
			'onready': wait_for_data,
		},
	})
except KeyboardInterrupt:
	stdout.write('[*] Bye !\n')
	hdlc_c.stop()
	ser.close()

	if amqp != None:
		amqp.close()