Example #1
0
def request_multiple(values: dict,
                     data: StepData,
                     name: str,
                     save_key,
                     ignore_testing=False):
    """Fragt für einen variablen Key, mehrere Male gewünschte Daten einer API ab.

    :param values: Werte aus der JSON-Datei
    :param data: Daten aus der API
    :param name: Testdatei, die geladen werden soll.
    :param save_key: Key, unter dem die Daten gespeichert werden.
    :param ignore_testing: Ob der Request durchgeführt werden soll, obwohl testing `true` ist.
    """

    if data.get_config("testing", False) and not ignore_testing:
        return _load_test_data(values, data, name, save_key)

    if data.get_data(values.get("use_loop_as_key", False), values, bool):
        data.insert_data(save_key, {}, values)
        for _, key in data.loop_array(values["steps_value"], values):
            _fetch(values, data, f"{save_key}|{key}")
    else:
        data.insert_data(save_key, [None] * len(values["steps_value"]), values)
        for idx, _ in data.loop_array(values["steps_value"], values):
            _fetch(
                values,
                data,
                f"{save_key}|{idx}",
            )
Example #2
0
def transform_array(values: dict, data: StepData):
    """Führt alle angegebenen `"transform"`-Funktionen für alle Werte eines Arrays aus.

    :param values: Werte aus der JSON-Datei
    :param data: Daten aus der API
    """
    for _ in data.loop_array(data.get_data(values["array_key"], values),
                             values):
        transform(values, data)
Example #3
0
def _build_params_array(values: dict, data: StepData, api_key_name: str,
                        req: dict):
    if req["params"] is None:
        req["params"] = {}

    for params in values["params_array"]:
        params_array = data.get_data(params["array"], values, list)
        data.deep_format(params_array, api_key_name, values)

        param = "".join([
            f"{data.format(params['pattern'], values)}{data.format(params.get('delimiter', ''), values)}"
            for _ in data.loop_array(params_array, values)
        ])
        req["params"][params["key"]] = param[:-1]
Example #4
0
def loop(values: dict, data: StepData):
    """Durchläuft das angegebene Array und führt für jedes Element die angegebenen `"transform"`-Funktionen aus.

    :param values: Werte aus der JSON-Datei
    :param data: Daten aus der API
    """
    loop_values = data.deep_format(values.get("values", None), values=values)

    # if values is none use range
    if loop_values is None:
        start = data.get_data(values.get("range_start", 0), values, int)
        stop = data.get_data(values["range_stop"], values, int)
        loop_values = range(start, stop)

    for _ in data.loop_array(loop_values, values):
        transform(values, data)