Beispiel #1
0
    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))
Beispiel #2
0
    def log_result(self):
        total = 0
        for i in range(self.skip_times, self.run_times):
            total += self.result[i]

        if self.run_times > self.skip_times:
            self.average = round(total / (self.run_times - self.skip_times), 2)
        LOGGER.info(vars(self))
Beispiel #3
0
    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()
Beispiel #4
0
    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()
Beispiel #5
0
 def __del__(self):
     self.stop_time = time.time()
     LOGGER.info('End of ' + self.__class__.__name__ + '. Total elapsed time: ' + str(int(self.stop_time - self.start_time)) + ' seconds')
Beispiel #6
0
 def _start(self):
     LOGGER.info("start")
     self.driver.maximize_window()
     self.driver.get(self.path)
     WebDriverWait(self.driver, self.case.timeout, self.poll_frequency).until(self.has_started)