Пример #1
0
 def __init__(self, reporter: ResultReporter):
     self.reporter = reporter
     self.scheduler = BlockingScheduler()
     self.events = list()
     log_path = static_setting.settings["CaseRunner"].log_path
     log_file = os.path.join(log_path, "event_scheduler_log.log")
     self.log = logger.register("EventScheduler",
                                filename=log_file,
                                for_test=True)
     self.scheduler.add_listener(self._event_listen, EVENT_JOB_EXECUTED)
Пример #2
0
 def __init__(self, description="", **kwargs):
     self.description = description
     self.arguments = dict()
     self.job = None
     self.interval = kwargs.get("interval", 0)
     self.result = EventStatus.IDlE
     self.back_ground = False
     self.loop_count = 0
     self.log = kwargs.get("log", logger.register(f"Event_{self.name}"))
     self.need_lock = False
     self.reporter = None
Пример #3
0
 def __init__(self):
     self.resource_pool = None
     self.list_setting = None
     self.test_list = None
     self.case_tree = dict()
     self.priority_list = list()
     self.pre_conditions = list()
     self.status = RunningStatus.Idle
     self.module_manager = ModuleManager()
     self.running_thread = None
     self.logger = logger.register(
         "CaseRunner",
         filename=os.path.join(CaseRunnerSetting.log_path,
                               "CaseRunner.log"),
         default_level=CaseRunnerSetting.log_level)
     self.result_report = ResultReporter(self.logger)
     self.logger.info("执行器装载完毕")
     self.case_log_folder = None
     self.case_result = dict()
 def __init__(self, log=None):
     self.log = log if log is not None else logger.register("ResourceLockPool", default_level="INFO")
     self.resource = dict()
                self.resource[resource.name]['lock'].set()
                self.resource.pop(resource.name)
            else:
                raise InvalidLockOperation(
                    f"{resource.name} is locked by {self.resource[resource.name]['event']}")
        else:
            raise InvalidLockOperation(f'{resource.name} is not locked')

if __name__ == "__main__":

    class TestResource:
        def __init__(self, name):
            self.name = name


    log = logger.register("testlog")
    pool = ResourceLockPool(log)
    device1 = TestResource('device1')


    def test_method1():
        pool.lock(device1, "event1")
        log.info("method1 start")
        time.sleep(10)
        pool.release(device1, "event1")
        log.info("method1 stop")


    def test_method2():
        pool.lock(device1, "event2")
        log.info("method2 start")
Пример #6
0
 def __get_case_log(self, path, case_name):
     log_path = os.path.join(self.case_log_folder, path, f"{case_name}.log")
     return logger.register(case_name, filename=log_path, is_test=True)
Пример #7
0
                if event.back_ground:
                    return
                else:
                    if event.loop_count == 1:
                        return
                    delta = datetime.timedelta(seconds=event.interval)
                    next_date = job.scheduled_run_time + delta
                    event.job = self.scheduler.add_job(
                        event.run,
                        "date",
                        run_date=next_date,
                        id=f"{event.name}{uuid.uuid4()}")
                    event.loop_count -= 1
                    return


if __name__ == "__main__":
    report = ResultReporter(logger.register("TestLog"))
    scheduler = EventScheduler(report)
    scheduler.add_event("DemoEvent1",
                        "product.event.demo_event",
                        args=None,
                        is_background=False,
                        need_lock=False,
                        loop_count=2,
                        interval=5,
                        start_time="2020-3-18 00:48:59",
                        description="a test")
    scheduler.start()

    input("wait")