Exemplo n.º 1
0
    def __init__(self,
                 server_address=None,
                 handler_class=None,
                 data_in=None,
                 curr_log_tools=None,
                 conf_in=None,
                 msg_res_event=None):

        if conf_in != None:
            self.conf = conf_in
        self.logger = curr_log_tools.get_logger(__name__)
        self.local_log_level = 'INFO'
        self.udp_server_banner = var_utils.Varutils().build_srv_banner
        self.ip_address = server_address[0]
        self.port = server_address[1]
        self.msg_res_event = msg_res_event

        self.allow_reuse_address = True
        socketserver.UDPServer.__init__(self, server_address, handler_class)
        self.data_in = data_in
        self.stop_serve_forever = True
        self.udp_server_banner(server_name='python_UDP_SERVER',
                               server_ip=server_address[0],
                               server_port=server_address[1],
                               ending='starts',
                               logging_level='INFO',
                               logger=self.logger)
        return
Exemplo n.º 2
0
 def __init__ (self,
               server_address,
               handler_class,
               data_in,
               curr_log_tools = logging_tools.LoggingTools,
               conf = None
               ):
     
     if conf != None:
         self.conf = conf
     self.logger = curr_log_tools.get_logger(__name__)
     self.local_log_level = 'INFO'
     self.udp_server_banner = var_utils.Varutils().build_srv_banner
     self.ip_address = server_address[0]
     self.port = server_address[1]
     
     self.allow_reuse_address = True
     socketserver.UDPServer.__init__(self,
                                     server_address,
                                     handler_class)
     
     self.data_in = data_in
     self.stop_serve_forever = True
     self.udp_server_banner(server_name = 'python_UDP_SERVER',
                            server_ip = server_address[0],
                            server_port = server_address[1],
                            ending = 'starts in a PROCESS',
                            logging_level = 'INFO',
                            logger = self.logger
                            )
     proc_name = multiprocessing.current_process().name
     proc_pid = multiprocessing.current_process().pid
     self.logger.info("Curr_proc_name: " + proc_name + "Curr_proc_pid: " + proc_pid)
     self.serve_forever()
     return
Exemplo n.º 3
0
    def setUpClass(self):
        """
            SETUP ENV FOR Sonata Module Test Suite :
            1) INITIAL CONFIG
            2) UDP SERVER to listen for BL responses
            3) UDP Sender
            4) Start Test VM from appropriate image
            5) Start BL with Sonata configs copied to test VM
            :return:
            """
        '''GET TOOLS OUT'''
        self.__tools__ = var_utils.Varutils()
        '''SETUP CONFIG FILE FOR SUITE'''
        self.conf = sonata_suite_config.SonataSuiteConfig()
        '''SET TEST NAMES QUEUE'''
        self.test_case = deque(self.conf.sonata_tests_names)

        self.curr_logger = self.conf.logging_tools.get_logger(__name__)
        self.__tools__.build_test_banner(
            mod_name='SONATA',
            suit_name='SUITE' + __name__,
            ending='SETS UP SENDER AND RECIEVER FOR TEST CLASS',
            logging_level='DEBUG',
            logger=self.curr_logger)
        '''SETUP EVERYTHING that pertains to sending receiving (UDP Server/sender data and so on)'''
        self.sr = self.conf.sender_receiver
        self.udp_srv = self.sr.udp_server_listen_on()
        '''SETUP VIRTUAL TEST ENVIRONMENT ON THIS HOST (VBOX AND IMAGES ASSUMED)'''
        self.__tools__.build_test_banner(
            mod_name='SONATA',
            suit_name='SUITE' + __name__,
            ending='SETS UP VIRTUAL ENV FOR TEST CLASS',
            logging_level='DEBUG',
            logger=self.curr_logger)

        self.ext_scripts = external_scripts.ExtScripts(self.conf)
        '''Log server is started from bootstrap script BUT for for debugging it should be turned on here'''
        #self.ext_scripts.start_log_server()
        self.ext_scripts.set_test_env()

        #self.exclude_tests = []

        self.exclude_tests = [
            "test_sonata_messages01", "test_sonata_messages02",
            "test_sonata_messages03", "test_sonata_messages04"
        ]

        return
Exemplo n.º 4
0
    def setUpClass(self):
        """
		SETUP ENV FOR Trassa Module Test Suite :
		1) INITIAL CONFIG
		2) UDP SERVER(s) to listen for BL responses (one for ASTD, other for Trassa)
		3) UDP Sender(s) (one to simulate traffic coming from AIS, other from TRASSA)
		4) Start Test VM from appropriate image
		5) Start BL with TRASSA configs copied to the test VM
		:return:
		"""
        '''
		GET TOOLS OUT
		'''
        self.__tools__ = var_utils.Varutils()
        '''
		LOGGING CONFIGURED
		'''
        self.curr_logger = logging.getLogger(__name__)
        '''---------------------------------------------------------------------------------------------------------
		SETUP
		all the things needed for test
		using conf files under the hood
		
		CONFIG FILE FOR SUITE
		defines everything
		that pertains to sending/receiving (UDP Server/sender data and so on)
		and
		data extraction and comparison
		'''
        self.trassa_setup = setup_trassa_suite.SetupTrassaSuite()
        '''Get names of
		UDP senders and servers since in
		these tests they should be started and an stopped on test case basis
		'''
        self.sender_id_01 = self.trassa_setup.udp_snd_name_01
        self.server_id_01 = self.trassa_setup.udp_srv_name_01

        self.sender_id_02 = self.trassa_setup.udp_snd_name_02
        self.server_id_02 = self.trassa_setup.udp_srv_name_02
        '''SET TEST NAMES QUEUE'''
        self.test_case_ids = deque(self.trassa_setup.get_test_cases_ids())
        self.exclude_tests = self.trassa_setup.get_excluded_tests()
        '''SETUP TEST ENV
		'''
        self.trassa_setup.start_logserver()
        self.trassa_setup.setup_vir_env()
        return
Exemplo n.º 5
0
 def __init__(self):
     """
     Connection establishment and in/out data_from fields setup
     """
     '''Lets find ot the system we run on'''
     self.syst = platform.system()
     '''And where we are'''
     self.module_abs_path = os.path.abspath(os.path.dirname(__file__))
     if self.syst == 'Windows':
         self.trassa_suite_config_json = self.vm_logsrv_cnf_location = os.path.join(
             self.module_abs_path, "..\\configs_trassa\\trassa_conf.json")
     elif self.syst == 'Linux':
         self.trassa_suite_config_json = self.vm_logsrv_cnf_location = os.path.join(
             self.module_abs_path, "../configs_trassa/trassa_conf.json")
     '''get some tools ready'''
     self.__utils__ = var_utils.Varutils()
     '''MAP OF CONFIG PARAMS FROM JSON'''
     self.trassa_suite_config = self.__utils__.read_json_to_map(
         data_location=self.trassa_suite_config_json)
Exemplo n.º 6
0
    def __init__(self,
                 server_address=None,
                 handler_class=None,
                 data_in_queue=None,
                 status_queue=None,
                 conf_in=None,
                 msg_res_event=None,
                 res_filter=None):
        """

        :param server_address:
        :param handler_class:
        :param data_in_queue:
        :param status_queue:
        :param conf_in:
        :param msg_res_event:
        """
        '''
        LETS NOT DO ANYTHING WITHOUT PROPER LOGGER
        '''
        self.res_filter = res_filter
        self.logger = logging.getLogger(__name__)

        self.name = None
        if conf_in != None:
            self.conf = conf_in
        self.udp_server_banner = var_utils.Varutils().build_srv_banner
        self.ip_address = server_address[0]
        self.port = server_address[1]
        self.msg_res_event = msg_res_event

        self.allow_reuse_address = True
        socketserver.UDPServer.__init__(self, server_address, handler_class)
        self.data_in_queue = data_in_queue
        self.status_queue = status_queue
        self.stop_serve_forever = True
        self.udp_server_banner(server_name='python_UDP_SERVER',
                               server_ip=server_address[0],
                               server_port=server_address[1],
                               ending='init',
                               logging_level='DEBUG',
                               logger=self.logger)
        return
Exemplo n.º 7
0
 def setUpClass(self):
     """
         SETUP ENV FOR Sonata Module Test Suite :
         1) INITIAL CONFIG
         2) UDP SERVER to listen for BL responses
         3) UDP Sender
         4) Start Test VM from appropriate image
         5) Start BL with Sonata configs copied to test VM
         :return:
         """
     '''
         GET TOOLS OUT            
         '''
     self.__tools__ = var_utils.Varutils()
     '''
         LOGGING CONFIGURED
         '''
     self.curr_logger = logging.getLogger(__name__)
     '''---------------------------------------------------------------------------------------------------------
         SETUP 
         all the things needed for test
         using conf files under the hood
         
         CONFIG FILE FOR SUITE
         defines everything
         that pertains to sending/receiving (UDP Server/sender data and so on)
         and
         data extraction and comparison
         '''
     self.sonata_setup = setup_sonata_suite.SetupSonataSuite()
     '''SET TEST NAMES QUEUE'''
     self.test_case_ids = deque(self.sonata_setup.get_test_cases_ids())
     self.exclude_tests = self.sonata_setup.get_excluded_tests()
     '''
         SETUP TEST ENV
         '''
     self.sonata_setup.start_logserver()
     '''Virtbox can be used'''
     #self.sonata_setup.setup_vir_env()
     '''Virtbox is not used use physical box'''
     self.sonata_setup.setup_vir_env(no_VM=True)
     return
Exemplo n.º 8
0
    def __init__(self):
        """
        Connection establishment and in/out data_from fields setup
        """
        '''Lets find ot the system we run on'''
        self.syst = platform.system()
        '''And where we are'''
        self.module_abs_path = os.path.abspath(os.path.dirname(__file__))
        self.path_to_proj = ""

        if self.syst == 'Windows':
            self.test_bl_config_json = self.vm_logsrv_cnf_location = os.path.join(
                self.module_abs_path, "..\\test_bl_configs\\test_bl_conf.json")
        elif self.syst == 'Linux':
            self.test_bl_config_json = self.vm_logsrv_cnf_location = os.path.join(
                self.module_abs_path, "../test_bl_configs/test_bl_conf.json")
        '''get some tools ready'''
        self.__utils__ = var_utils.Varutils()
        '''MAP OF CONFIG PARAMS FROM JSON'''
        self.test_bl_config = self.__utils__.read_json_to_map(
            data_location=self.test_bl_config_json)
        '''FIND OUT ABS PATH TO PROJ SO IT CAN BE USED TO FIND THINGS INSIDE IT'''
        self.path_to_proj = self.get_proj_dir_path()
        '''---------------------------------------------------------------------------------------------------------
        INI CONF REMAINS TODO: delete complitely
        '''
        '''MAP OF CONFIG PARAMS FROM INI'''
        if self.syst == 'Windows':
            self.test_bl_config_ini = self.vm_logsrv_cnf_location = os.path.join(
                self.module_abs_path, "..\\test_bl_configs\\test_bl_conf.ini")
        elif self.syst == 'Linux':
            self.test_bl_config_ini = self.vm_logsrv_cnf_location = os.path.join(
                self.module_abs_path, "../test_bl_configs/test_bl_conf.ini")
        self.test_bl_conf = configparser.ConfigParser()
        self.test_bl_conf.read(self.test_bl_config_ini)
        '''---------------------------------------------------------------------------------------------------------
        START CONFIGURATION
        '''
        '''SET VM and LOG SERVER PREFS'''
        '''Location of VM manage command used to restart SUT VM'''
        if self.syst == 'Windows':
            self.vm_vbox_manage = self.test_bl_conf['LOCAL_VBOX_DIRS'][
                'VBOXMANAGE_DIR']
        elif self.syst == 'Linux':
            self.vm_vbox_manage = self.test_bl_conf['LOCAL_VBOX_DIRS_LINUX'][
                'VBOXMANAGE_DIR']
        '''VM clean snap`s name'''
        self.vm_alt_img = self.test_bl_conf['CLEAN_IMAGES']['CLEAN_ALT']
        self.vm_alt_img_snapshot = self.test_bl_conf['CLEAN_IMAGES'][
            'CLEAN_ALT_SNAP']
        '''SET SUT SSH PREFS COMMON FOR ALL TEST SUITES'''
        self.ssh_host = self.test_bl_conf['SSH_PREFS']['SSH_HOST']
        self.ssh_port = self.test_bl_conf['SSH_PREFS']['SSH_PORT']
        self.ssh_user = self.test_bl_conf['SSH_PREFS']['SSH_USER_NAME']
        self.ssh_pwd = self.test_bl_conf['SSH_PREFS']['SSH_PASSWD']
        self.ssh_target_dir = self.test_bl_conf['SSH_PREFS']['SSH_TARGET_DIR']
        '''Here an assumption is made that
        all configs and
        all scripts for all modules are in the same archive
        with predetermined directory(es) structure'''
        if self.syst == 'Windows':
            self.sut_all_confs = self.test_bl_conf['BL_CONFIG_FILES'][
                'BL_CONF_FILES_ARCH']
        elif self.syst == 'Linux':
            self.sut_all_confs = self.test_bl_conf['BL_CONFIG_FILES_LINUX'][
                'BL_CONF_FILES_ARCH']
        '''
        |-----------------------------------------------------------------------------------------------------------
        '''
        '''
        SET PREFS FOR LOGGING FACILITIES OF THE TEST MODULES
        '''
        '''
        CHAINSAW log server specifics (start script)
        '''
        if self.syst == 'Windows':
            self.vm_log_srv_exec = self.test_bl_conf['LOGGER_SRV'][
                'LOGGER_SRV_EXEC']
            self.vm_log_srv_dir = self.test_bl_conf['LOGGER_SRV'][
                'LOGGER_SRV_DIR']
        elif self.syst == 'Linux':
            self.vm_log_srv_exec = self.test_bl_conf['LOGGER_SRV_LINUX'][
                'LOGGER_SRV_EXEC']
            self.vm_log_srv_dir = self.test_bl_conf['LOGGER_SRV_LINUX'][
                'LOGGER_SRV_DIR']
        '''
        SET LOCATION OF THE SUT LOG USED IN TESTS
        '''
        if self.syst == 'Windows':
            self.bl_log_dir = self.test_bl_conf['BL_LOG_FILE'][
                'BL_LOG_FILE_DIR']
        elif self.syst == 'Linux':
            self.bl_log_dir = self.test_bl_conf['BL_LOG_FILE_LINUX'][
                'BL_LOG_FILE_DIR_LINUX']
        '''
        |---------------------------------------------------------------------------------------------------------------
        '''
        '''
        VARS TO DEFINE Connections PREFERENCES
        for TEST DATA SENDERS and RECEIVERS
        '''
        '''SET SENDERS'''
        self.ip_to = self.test_bl_conf['CONNECTION_PREFS']['BL_IP_TO']
        self.port_to = int(self.test_bl_conf['CONNECTION_PREFS']['BL_PORT_TO'])
        self.protocol_to = self.test_bl_conf['CONNECTION_PREFS']['BL_PROT_TO']
        '''SET RECEIVERS'''
        self.ip_on = self.test_bl_conf['CONNECTION_PREFS']['BL_IP_ON']
        self.port_on = int(self.test_bl_conf['CONNECTION_PREFS']['BL_PORT_ON'])
        self.buff_size = self.test_bl_conf['CONNECTION_PREFS']['BL_BUFFSZ_ON']
        '''Combine prefs'''
        self.listen_on = (self.ip_on, self.port_on)
        def __init__(self):
            """
            Connection establishment and in/out data_from fields setup
            """
            '''
            Set all configs params to be used in ALL TESTS of THIS SUITE dealing with SONATA messages.
            TODO: Good idea would be to read variables that are needed for configuration
            from the same .cmd or .bash script that sets
            them to 
            be checked and assigned into config values structure to be used during the course
            of tests execution. How to do such dynamic assignment? And where static part of it would be?        
            '''
            self.__utils__=var_utils.Varutils()

            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''
            SET VARIOUS Config files           
            '''
            '''SET PARAMS for LOCAL VM MANAGEMENT and start of LOG SERVER serving BL remotely'''
            self.vm_logsrv_cnf = configparser.ConfigParser()
            self.vm_logsrv_cnf_location = 'C:\\data\\kronshtadt\\QA\\BL\\AutomationFrameworkDesign\\bl_frame_work\\test_bl\\test_bl_configs\\LocalVM_RemBL_LogSRVconf.ini'
            self.vm_logsrv_cnf.read(self.vm_logsrv_cnf_location)

            '''SET SONATA`S GENERAL CONFIG'''
            self.sonata_cnf = configparser.ConfigParser()
            self.sonata_cnf_location = 'C:\\data\\kronshtadt\\QA\\BL\\AutomationFrameworkDesign\\bl_frame_work\\test_bl\\test_sonata_plugin\\configs_sonata\\sonata_conf.ini'
            self.sonata_cnf.read(self.sonata_cnf_location)

            '''SET SSH PREFS FOR BL CONFIG AND RESTART HANDLING'''
            self.bl_ssh_cnf = configparser.ConfigParser()
            self.bl_ssh_cnf_location = 'C:\\data\\kronshtadt\\QA\\BL\\AutomationFrameworkDesign\\bl_frame_work\\test_bl\\test_bl_configs\\ssh_bl_conf_files.ini'
            self.bl_ssh_cnf.read(self.bl_ssh_cnf_location)


            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''SET VM and LOG SERVER PREFS'''
            self.vm_vbox_manage         = self.vm_logsrv_cnf['LOCAL_VBOX_DIRS']['VBOXMANAGE_DIR']
            self.vm_alt_img             = self.vm_logsrv_cnf['CLEAN_IMAGES']['CLEAN_ALT']
            self.vm_alt_img_snapshot    = self.vm_logsrv_cnf['CLEAN_IMAGES']['CLEAN_ALT_SNAP']
            self.vm_log_srv_exec        = self.vm_logsrv_cnf['LOGGER_SRV']['LOGGER_SRV_EXEC']
            self.vm_log_srv_dir         = self.vm_logsrv_cnf['LOGGER_SRV']['LOGGER_SRV_DIR']

            '''SET SSH PREFS COMMON FOR ALL TEST SUITES'''
            self.ssh_host               = self.bl_ssh_cnf['SSH_PREFS']['SSH_HOST']
            self.ssh_port               = self.bl_ssh_cnf['SSH_PREFS']['SSH_PORT']
            self.ssh_user               = self.bl_ssh_cnf['SSH_PREFS']['SSH_USER_NAME']
            self.ssh_pwd                = self.bl_ssh_cnf['SSH_PREFS']['SSH_PASSWD']
            self.ssh_target_dir         = self.bl_ssh_cnf['SSH_PREFS']['SSH_TARGET_DIR']

            '''Here an assumption is made that all configs and all scripts for all modules are in the same archive
            with predetermined directoryes structure'''
            self.sut_all_confs  = self.bl_ssh_cnf['BL_CONFIG_FILES']['BL_CONF_FILES_ARCH']
            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''SET REMOTE ACTIONS SPECIFIC FOR SONATA TESTS'''
            '''First we need to copy configs and bash scripts over over.
               Here an assumption is made that all configs and all '''
            self.sut_sonata_confs    = self.sonata_cnf['BL_SONATA_CONFIG_FILES']['SONATA_CONF_FILES_ARCH']

            '''ssh_content_to_copy VAR is known to external scripts that care only about source for files to be copied'''
            self.ssh_content_to_copy = self.sut_sonata_confs

            '''SET BL HANDLING PREFS'''
            '''Second we ought for fill up a map of connamds to be executed remotely'''


            '''These settings handle everything that pertains to BL restart and configuration changes'''

            '''SET COMMANDS to be executed on BL Snapshotrestore/Reboot/FirstStart of Tests'''
            #self.ssh_remote_commands_keys = [key for key in self.sonata_cnf['SUT_CONTROL_COMMANDS_START']]
            self.ssh_remote_commands_keys = self.__utils__.conf_key_to_arr(conf_parser=self.sonata_cnf,
                                                                           section_key='SUT_CONTROL_COMMANDS_START',
                                                                           switch='keys')
            #self.ssh_remote_commands_vals = [value for value in self.sonata_cnf['SUT_CONTROL_COMMANDS_START'].values()]
            self.ssh_remote_commands_vals = self.__utils__.conf_key_to_arr(conf_parser=self.sonata_cnf,
                                                                           section_key='SUT_CONTROL_COMMANDS_START',
                                                                           switch='values')

            '''Final MAP of commands for execution over SSH on tests start'''
            self.ssh_remote_commands_conf_start = self.__utils__.zip_to_map(to_zip01=self.ssh_remote_commands_keys,
                                                                                to_zip02=self.ssh_remote_commands_vals)


            self.ssh_remote_commands_keys = self.__utils__.conf_key_to_arr(conf_parser=self.sonata_cnf,
                                                                           section_key='SUT_CONTROL_COMMANDS_STOP',
                                                                           switch='keys')
            #temp03 = self.sonata_cnf['SUT_CONTROL_COMMANDS_START']
            #self.ssh_remote_commands_vals = [value for value in self.sonata_cnf['SUT_CONTROL_COMMANDS_START'].values()]
            self.ssh_remote_commands_vals = self.__utils__.conf_key_to_arr(conf_parser=self.sonata_cnf,
                                                                           section_key='SUT_CONTROL_COMMANDS_STOP',
                                                                           switch='values')

            '''Final MAP of commands for execution over SSH on tests start'''
            self.ssh_remote_commands_conf_stop = self.__utils__.zip_to_map(to_zip01=self.ssh_remote_commands_keys,
                                                                            to_zip02=self.ssh_remote_commands_vals)

            '''SET TEST NAMES FOR AUTO LOADING OF TEST DATA FOR SPECIFIC TEST'''


            '''Final MAP of commands for execution over SSH on tests start'''
            self.sonata_tests_names = self.__utils__.conf_key_to_arr(conf_parser=self.sonata_cnf,
                                                                           section_key='SONATA_TEST_NAMES',
                                                                           switch='values')

            '''
            self.ssh_remote_keys_vals_combined = zip(self.ssh_remote_commands_keys, self.ssh_remote_commands_vals)

            self.ssh_remote_commands_conf_start = {}
            #Final ARRAY of commands for execution over SSH
            for key, val in self.ssh_remote_keys_vals_combined:
                self.ssh_remote_commands_conf_start[key]=val
            '''
            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''
            SET PREFS FOR LOGGING FACILITIES OF THE TEST MODULES            
            '''
            self.logging_dir = self.sonata_cnf['LOGGING_PREFS']['BL_LOGGING_DIR']
            self.log_file = self.sonata_cnf['LOGGING_PREFS']['BL_LOG_CONF_FNAME']
            self.log_file_dir = self.sonata_cnf['LOGGING_PREFS']['BL_LOG_CONF_PATH']
            self.log_conf_full = self.sonata_cnf['LOGGING_PREFS']['BL_LOG_CONF_PATH_TOF']
            self.default_level =  self.sonata_cnf['LOGGING_PREFS']['BL_LOGGING_LEVEL']

            self.default_path = 'C:\\data_from\\kronshtadt\\QA\\BL\\AutomationFrameworkDesign\\bl_frame_work\\test_bl\\test_bl_configs\\logging_conf.json'


            self.logging_tools = logging_tools.LoggingTools(self.default_path,
                                                            self.default_level,
                                                            self.logging_dir,
                                                            self.log_file,
                                                            self.log_file_dir,
                                                            self.log_conf_full
                                                            )
            '''
            |---------------------------------------------------------------------------------------------------------------        
            |    SET VARS TO DEFINE for TEST DATA RETRIEVAL       
            |---------------------------------------------------------------------------------------------------------------
            '''
            '''VARS TO DEFINE MESSAGES USED BY SENDING TOOLS AGAINST MODULES
            '''
            '''SET THE TYPE OF MESSAGES TO BE USED IN
                TESTS        
            '''
            self.messages_type = self.sonata_cnf['TEST_DATA']['BL_MESSAGES_TYPE']
            self.messages_src =  self.sonata_cnf['TEST_DATA']['BL_MESSAGES_SRC']
            self.messages_dir_json =  self.sonata_cnf['TEST_DATA']['BL_MESSAGES_PATH_JSON']
            self.messages_dir_txt = self.sonata_cnf['TEST_DATA']['BL_MESSAGES_PATH_TXT']

            '''
            Default not used.
            It is here just in case.
            '''
            self.def_mgs_location = "C:\\data_from\\kronshtadt\\QA\\BL\\AutomationFrameworkDesign\\bl_frame_work\\resources\\messages.json"

            '''======================================================================================================'''
            '''
            SET params for test data transmission. MOSTLY USELESS NOW.
            '''
            self.pause_flag = bool(self.sonata_cnf['TEST_DATA']['SENDER_PAUSE_FLAG'])
            self.quit_flag = bool(self.sonata_cnf['TEST_DATA']['SENDER_STOP_FLAG'])
            self.num_msgs_to_send = int(self.sonata_cnf['TEST_DATA']['NUM_OF_MSGS'])
            self.delay_btwn_msgs = int(self.sonata_cnf['TEST_DATA']['DEL_BTWN_MSGS'])
            '''======================================================================================================'''
            '''
            VARS TO DEFINE actual SENDING/RECEIVING 
            and 
            TEST DATA CHOICES PER TEST
            '''
            '''======================================================================================================'''

            '''SET Data structures
                for storing
                and
                retrieving
                test
                data_from(input / output)
            '''
            self.rd = received_data.RecievedData()
            self.data_received = self.rd.get_received_l_all()
            '''
            SET LOCK FOR RECEIVED DATA
            '''
            self.data_received_lock = threading.RLock()
            self.data_sent = self.rd.get_sent_m_all()
            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            ''' Set the empty storing 
                structures in everything
            '''
            self.content_proc = sonata_nmea_msgs_content_process.SonataNmeaMsgsContentProcessing(self.data_received,
                                                                                                 self.data_sent)
            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''

            ''' Setup for the test suite and current test which uses this configuration
                also
                used by setting up all that pertains to sending receiving data
            '''
            self.curr_test_suite = None
            self.curr_test = None
            ''' Actual constructed messages that are out 
                to be sent  in each test case
            '''
            self.msgs_to_send = None
            '''Initially plain list was used to put messages directly'''
            '''For both sending and receiving'''
            self.messages_use_events = self.sonata_cnf.getboolean('TEST_DATA','USE_EVENTS')
            self.messages_use_queue = self.sonata_cnf.getboolean('TEST_DATA','USE_QUEUE')

            if self.messages_use_events == True and self.messages_use_queue == True:
                    self.q_support = 1
                    self.msg_sent_evnt = threading.Event()
                    self.msg_received_evnt = threading.Event()
                    self.msg_to_send_q = queue.Queue()
                    self.msg_to_receive_q = queue.Queue()
            else:
                self.q_support = 0
                self.msg_sent_evnt = None
                self.msg_received_evnt = None
                self.msg_to_send_q = None
                self.msg_to_receive_q = None



            '''======================================================================================================'''
            '''
            VARS TO DEFINE Connections PREFERENCES
            for TEST DATA SENDERS and RECEIVERS
            '''
            '''SET SENDERS'''
            self.ip_to = self.sonata_cnf['CONNECTION_PREFS']['BL_IP_TO']
            self.port_to = int(self.sonata_cnf['CONNECTION_PREFS']['BL_PORT_TO'])
            self.protocol_to = self.sonata_cnf['CONNECTION_PREFS']['BL_PROT_TO']

            '''SET RECEIVERS'''
            self.ip_on = self.sonata_cnf['CONNECTION_PREFS']['BL_IP_ON']
            self.port_on = int(self.sonata_cnf['CONNECTION_PREFS']['BL_PORT_ON'])
            self.buff_size = self.sonata_cnf['CONNECTION_PREFS']['BL_BUFFSZ_ON']
            '''Combine prefs'''
            self.listen_on = (self.ip_on, self.port_on)
            '''======================================================================================================'''
            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''SETUP SENDER/RECIVER class doing all the work before TESTS start
            '''
            ''' Actual, properly constructed messages that are out 
                to be sent in each test case are configured on the sender/receiver level
                and passed as iterator to UDP sender
            '''
            self.sender_receiver = send_receive_sonata.SendReceiveSonata(self)
            #self.sender_receiver =  send_receive_sonata_threads.SendReceiveSonataTreaded()

            '''
            |---------------------------------------------------------------------------------------------------------------        
            '''
            '''
            TODO: reset                   whatever NEEDED to be reset
            '''

            '''
Exemplo n.º 10
0
from __future__ import print_function