Я хочу написать модульный тест для моего кода Python - PullRequest
0 голосов
/ 25 марта 2019

У меня есть код ниже, для которого я должен написать модульный тест, но я действительно не уверен в этом, поскольку метод не принимает никаких аргументов в определении функции, и я действительно не знаю, как передать значения для переменные при написании модульного теста. Как видно из приведенного ниже кода, у нас есть 4 переменные, значение которых будет опубликовано в запросе почтальона:

  1. access_token
  2. data_separator
  3. FPATH

Я хочу проверить, работает ли функция правильно и может ли она прочитать текстовый файл, обработать его и отправить обратно значение возврата.

def b():
    """
    save uploaded document
    """
    return_value = {"status": "fail"}
    try:
        access_token = request.form["access_token"]
        decoded = decode_token(access_token)
        data_separator = request.form["data_separator"]
        fpath = _save_input_file_(decoded["AccountUId"])
        # extract_to = os.path.join(_get_client_tmp_dir_(), 'extract')
        # if not es.uncompress(fpath, extract_to):
        #     msg = 'error while attempting to uncompress! file: %s' 
        #     logger.error(msg)
        #     return json.dumps({'msg': 'failure'})
        df = None
        if os.path.isfile(fpath):
            logger.debug("saved is file. reading file into dataframe")
            df = pd.read_csv(fpath, names=[cf.COLUMN1,cf.COLUMN2], sep=data_separator)
        elif os.path.isdir(fpath):
# read dir in a for loop
            pass
        (train_x, test_x, train_y, test_y) = _determine_features_(df, decoded["AccountUId"])
        score = _train_model_and_persist_(train_x, test_x, train_y, test_y,decoded["AccountUId"])
        return_value = {"status":"success", "accuracy":score}
    except jwt.exceptions.DecodeError:
        logger.exception("An error occured")
        return_value["msg"] = "Invalid token. Error while decoding"

    return json.dumps(return_value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...