1.1.0版本
This commit is contained in:
51
UniTAP/dev/modules/opf/handlers/base.py
Normal file
51
UniTAP/dev/modules/opf/handlers/base.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import abc
|
||||
from typing import Callable
|
||||
from enum import IntEnum
|
||||
|
||||
from .opf_functions import OPFFunctions, logging, OPFDialogAnswer
|
||||
from UniTAP.dev.modules.opf.parsers import OPFParametersParser
|
||||
|
||||
|
||||
class WrongOPFFunctionSignature(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class OpfHandlerBase:
|
||||
"""
|
||||
Class `OpfHandlerBase` allows working with functions that helps to do required actions during DUT tests.
|
||||
- Use DSC content library `set_dsc_content_library`. If DSC image does not exist, it will be generated.
|
||||
"""
|
||||
__FUNCTIONS_MAP = {
|
||||
19: OPFFunctions.opf_19_handler,
|
||||
103: OPFFunctions.opf_103_handler,
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
self.__parser = OPFParametersParser()
|
||||
self.__tx = None
|
||||
self.__rx = None
|
||||
self.__callback_before_handling = {}
|
||||
self._dsc_content_library_path = ""
|
||||
|
||||
def _set_roles(self, role_tx, role_rx):
|
||||
self.__tx = role_tx
|
||||
self.__rx = role_rx
|
||||
|
||||
def set_dsc_content_library(self, dsc_content_library_path: str = ""):
|
||||
"""
|
||||
Set new path to DSC content library folder.
|
||||
If path is empty, content library will not use (all images will be generated into OPF functions without saving).
|
||||
|
||||
Arguments:
|
||||
dsc_content_library_path (`str`) - full path to DSC content library folder.
|
||||
"""
|
||||
self._dsc_content_library_path = dsc_content_library_path
|
||||
|
||||
def handle(self, opf_id, reply_answer, *args) -> OPFDialogAnswer:
|
||||
opf_params = self.__parser.parse(opf_id, *args)
|
||||
|
||||
OPFFunctions.dsc_content_library_path = self._dsc_content_library_path
|
||||
return reply_answer(self.__FUNCTIONS_MAP.get(opf_id)(self.__tx, self.__rx, *opf_params))
|
||||
|
||||
def _is_opf_processed(self, opf_id: int):
|
||||
return self.__FUNCTIONS_MAP.get(opf_id) is not None
|
||||
Reference in New Issue
Block a user