Source code for catcher.steps.external

import json

from catcher.steps.step import Step, update_variables
from catcher.utils.misc import fill_template_str
from catcher.utils import external_utils


[docs]class External(Step): def __init__(self, _module: str = None, **kwargs) -> None: super().__init__(**kwargs) method = Step.filter_predefined_keys(kwargs) self.data = {method: kwargs[method]} self.module = _module
[docs] @update_variables def action(self, includes: dict, variables: dict) -> tuple: """ Call external script. :param includes: testcase's includes :param variables: variables :return: script's output """ json_args = fill_template_str(json.dumps(self.data), variables) return variables, external_utils.run_cmd_simple(self.module, variables, args=[json_args])