Как проверить функцию python, которая записывает json на диск? - PullRequest
1 голос
/ 28 марта 2020

Я хотел бы знать, как лучше всего написать тестовую функцию (которая будет запускаться с использованием pytest) для следующей короткой функции, которая сериализует json.

import json
import os

def my_function(folder):
    my_dict = {"a": "A", "b": "B", "c": "C"}
    with open(os.path.join(folder, 'my_json.json'), 'w') as f:
        json.dump(my_dict, f)

Я хотел бы проверить быть написанным как простая функция (не как метод класса, унаследованного от unittest.TestCase).

Моя текущая идея

def test_my_function():
    my_function(folder)
    with open(os.path.join(folder, 'my_json.json'), 'r') as f:
        my_dict = json.load(f)
    assert my_dict == {"a": "A", "b": "B", "c": "C"}

Мне интересно, есть ли более элегантный способ проверить это, не касаясь диска?

1 Ответ

1 голос
/ 28 марта 2020

json.dump() проверено сопровождающими пакета json.

Итак, я не думаю, что вам нужно проверять это самостоятельно.

Вот как они тестируют функцию без записи на диск:

        sio = StringIO()
        self.json.dump({}, sio)
        self.assertEqual(sio.getvalue(), '{}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...