def format(instance): # Check if all mandatory members in FORMAT are satisfied for format in instance.FORMAT: if format[Format.REQUIRED] == 'M' and not format[Format.NAME] in instance.data: LOGGER.error(format[Format.NAME]+ ' is not defined in ' + instance.__class__.__name__) quit() for member in instance.data: # Check all members in instance are recognized format = Format.format_has_member(instance.FORMAT, member) if not format: LOGGER.warning('Can not recognize ' + ' in ' + instance.__class__.__name__) continue if format[Format.NAME] == '*': format_name = member else: format_name = format[Format.NAME] format_type = format[Format.TYPE] instance_data = instance.data[format_name] if format_type == 'P': instance.__dict__[format_name] = instance_data elif format_type == 'O': instance.__dict__[format_name] = eval(format_name.capitalize())(instance_data) elif format_type == 'A': for element in instance_data: instance.__dict__[format_name].append(eval(format_name.capitalize()[:-1])(element))
def config(self): index = 0 fish_number_list = self.CONFIG['fish_number_list'] for i in range(len(fish_number_list)): if self.fish_number == fish_number_list[i]: index = i * 2 + 2 if (index == 0): LOGGER.error('fish_number in FishIETank is not correct, will use 20 instead') index = 6 fish_elems = self.driver.find_elements_by_class_name("control") fish_elems[index].click()
def __init__(self, config_file): # Init LOGGER LOGGER.setLevel(logging.DEBUG) formatter = logging.Formatter('[%(asctime)s - %(levelname)s] %(message)s', "%Y-%m-%d %H:%M:%S") result_path = PROJECT_PATH + 'test_results/' if not os.path.exists(result_path): os.mkdir(result_path) log_file = logging.FileHandler(result_path + time.strftime('%Y-%m-%d-%X', time.localtime()) + '.log') log_file.setFormatter(formatter) LOGGER.addHandler(log_file) console = logging.StreamHandler() console.setFormatter(formatter) LOGGER.addHandler(console) # Log start self.start_time = time.time() LOGGER.info('Start of ' + self.__class__.__name__ + '.') # Parse if not os.path.isfile(config_file): LOGGER.error(config_file + ' is not a valid file.') quit() f = file(config_file) self.data = json.load(f) f.close() self.suites = [] Format.format(self) # Start patrol if SYSTEM == 'windows': exec 'from common.patrol import Patrol' self.patrol = Patrol() # Run for i in range(len(self.suites)): self.suites[i].run()