Пример #1
0
    def __init__(self, config):
        '''
            Base runner Class Initiator Sets Data files from where Data need
            to be retrieved and to be used for Building Tests.
        '''
        logger.info("Initializing TestRunner")
        # The keys are test link ids and the values are import information.
        self.__test_map = {}
        if not os.path.isdir(fwork.RESULTS_DIR):
            os.makedirs(fwork.RESULTS_DIR)
        self.reporter = TestReporter(config)
        self.config = config
        if not 'device' in os.environ:
            if not self.config.options.switch:
                os.environ['device'] = "IAP_1"
            else:
                os.environ['device'] = "Switch_1"
        self.config.global_vars = ConfigReader("global_vars")
        self.config.config_vars = ConfigReader("config_vars")
        self._test_discover_count = 0
        self.filter_input_files = False
        self.filter_testlink_ids = False
        self.filter_test_classes = False
        self.filter_test_methods = False
        self.filtered_test_id_list = []
        if self.config.options.input_files != "ALL":
            self.filter_input_files = True
            self.config.input_files = [
                i.strip().upper()
                for i in self.config.options.input_files.split(",")
            ]
        if self.config.options.testlink_ids != "ALL":
            self.filter_testlink_ids = True
            self.config.testlink_ids = [
                i.strip().upper()
                for i in self.config.options.testlink_ids.split(",")
            ]
        if self.config.options.test_classes != "ALL":
            self.filter_test_classes = True
            self.config.test_classes = [
                i.strip().upper()
                for i in self.config.options.test_classes.split(",")
            ]
        if self.config.options.test_methods != "ALL":
            self.filter_test_methods = True
            self.config.test_methods = [
                i.strip().upper()
                for i in self.config.options.test_methods.split(",")
            ]

        import re
        self.aClassRef = {}
        self.aObjectRef = {}
        if not self.config.options.ignore_device:
            from inspect import isclass
            from Device_Module import IAPDevice
            # from Device_Module import ClientDevice
            from Device_Module import SwitchDevice
            classes = [x for x in dir(devices) if isclass(getattr(devices, x))]
            print classes
            for clas in classes:
                if getattr(devices, clas).type == "IAP":
                    self.aClassRef[clas] = type(clas, (IAPDevice.IAPDevice, ),
                                                {})
                # elif getattr(devices, clas).type == "CLIENT":
                # self.aClassRef[clas] = type(clas, (ClientDevice.ClientDevice,), {})
                elif getattr(devices, clas).type == "SWITCH":
                    self.aClassRef[clas] = type(clas,
                                                (SwitchDevice.SwitchDevice, ),
                                                {})
                self.aObjectRef[clas] = self.aClassRef[clas]()
                print self.aObjectRef.values()
                val = self.aClassRef[clas]
                print clas
                print val
                for att in dir(getattr(devices, clas)):
                    if att != "__doc__" and att != "__module__":
                        setattr(val, att, getattr(getattr(devices, clas), att))
        self.error_type = None