1010
1111from MLC .arduino .protocol import ProtocolConfig , REPORT_MODES
1212from MLC .arduino .boards import Mega , Due
13+ from MLC .arduino .connection .serialconnection import SerialConnectionConfig
14+
15+ from serial import serialutil
1316
1417
1518class MLCRepositoryTest (unittest .TestCase ):
@@ -23,14 +26,21 @@ class MLCRepositoryTest(unittest.TestCase):
2326 read_delay = 2000 ,
2427 analog_resolution = 12 )
2528
26- def __create_board_config (self , digital_input_pins , digital_output_pins , analog_input_pins , analog_output_pins , pwm_pins ):
29+ def __create_board_config (self , digital_input_pins = [] , digital_output_pins = [] , analog_input_pins = [] , analog_output_pins = [] , pwm_pins = [] ):
2730 return ProtocolConfig (connection = None , board_type = Mega , report_mode = REPORT_MODES .BULK , read_count = 1000 , read_delay = 2000 , analog_resolution = 12 ,
2831 digital_input_pins = digital_input_pins ,
2932 digital_output_pins = digital_output_pins ,
3033 analog_input_pins = analog_input_pins ,
3134 analog_output_pins = analog_output_pins ,
3235 pwm_pins = pwm_pins )
3336
37+ def __create_serial_connection (self ):
38+ return SerialConnectionConfig (baudrate = 1 ,
39+ parity = 2 ,
40+ stopbits = 3 ,
41+ bytesize = 4 ,
42+ port = 5 )
43+
3444 @classmethod
3545 def setUpClass (cls ):
3646 Config ._instance = Config .from_dictionary ({"BEHAVIOUR" : {"save" : "false" },
@@ -688,3 +698,53 @@ def test_update_board_pins(self):
688698 self .assertEqual (updated_board .analog_input_pins , [27 , 28 , 29 ])
689699 self .assertEqual (updated_board .analog_output_pins , [30 , 31 , 32 ])
690700 self .assertEqual (updated_board .pwm_pins , [33 , 34 , 35 ])
701+
702+ def test_save_serial_connection (self ):
703+ mlc_repo = self .__get_new_repo ()
704+ board = self .__create_board_config ()
705+ board_id = mlc_repo .save_board_configuration (board )
706+
707+ serial_connection = self .__create_serial_connection ()
708+ serial_connection_id = mlc_repo .save_serial_connection (serial_connection , board_id )
709+
710+ loaded_serial_connection = mlc_repo .load_serial_connection (board_id )
711+
712+ self .assertEquals (serial_connection .port , loaded_serial_connection .port )
713+ self .assertEquals (serial_connection .baudrate , loaded_serial_connection .baudrate )
714+ self .assertEquals (serial_connection .parity , loaded_serial_connection .parity )
715+ self .assertEquals (serial_connection .stopbits , loaded_serial_connection .stopbits )
716+ self .assertEquals (serial_connection .bytesize , loaded_serial_connection .bytesize )
717+
718+ def test_save_serial_connection_invalid_board_id (self ):
719+ mlc_repo = self .__get_new_repo ()
720+ serial_connection = self .__create_serial_connection ()
721+ try :
722+ serial_connection_id = mlc_repo .save_serial_connection (serial_connection , 1 )
723+ self .assertTrue (False )
724+ except KeyError :
725+ self .assertTrue (True )
726+
727+ def test_update_serial_connection (self ):
728+ mlc_repo = self .__get_new_repo ()
729+ board = self .__create_board_config ()
730+ board_id = mlc_repo .save_board_configuration (board )
731+
732+ serial_connection = self .__create_serial_connection ()
733+ serial_connection_id = mlc_repo .save_serial_connection (serial_connection , board_id )
734+
735+ updated_serial_connection = SerialConnectionConfig (baudrate = 100 ,
736+ parity = 200 ,
737+ stopbits = 300 ,
738+ bytesize = 400 ,
739+ port = 500 )
740+
741+ updated_serial_connection_id = mlc_repo .save_serial_connection (updated_serial_connection , board_id , connection_id = serial_connection_id )
742+
743+ self .assertEqual (updated_serial_connection_id , serial_connection_id )
744+ serial_connection = mlc_repo .load_serial_connection (board_id )
745+
746+ self .assertEquals (serial_connection .port , updated_serial_connection .port )
747+ self .assertEquals (serial_connection .baudrate , updated_serial_connection .baudrate )
748+ self .assertEquals (serial_connection .parity , updated_serial_connection .parity )
749+ self .assertEquals (serial_connection .stopbits , updated_serial_connection .stopbits )
750+ self .assertEquals (serial_connection .bytesize , updated_serial_connection .bytesize )
0 commit comments