как использовать макет файла базы данных json в python

#python #unit-testing #flask #mocking

#python #модульное тестирование #flask #издевательство

Вопрос:

Я должен выполнить UnitTest для предопределенных данных, создав макет файла базы данных JSON, и проверить, что приложение возвращает правильную информацию. вот мое приложение с функцией getUsers:

     from flask import Flask 

app = Flask(__name__)  


@app.route("/")
def hello():
    return "Hello World!"   

@app.route("/users")
def getUsers():
    # Opening JSON file
    f = open('users.json')  # users.json is the Database
    data = json.load(f)
    for value in data.values():
        value.pop('id')
    result_dict = json.dumps(data)
    return result_dict
 

я пытался издеваться так:

 @patch('hello.getUsers')
def test_users(MockBlog):
    getUsers = MockBlog()      
    getUsers.return_value = requests.get('https://my-json-server.typicode.com/MosenzonTal/demo/db').json()
    response = getUsers()
    print(response)
 

я должен проверить выходные данные getUsers из поддельной базы данных.
ответ:
{‘test_user1’: {‘id’: ‘tes1t’, ‘name’: ‘Тестовый пользователь 1’, ‘favorite_color’: ‘Черный’}
но идентификатор пользователя не был отфильтрован, как я ожидал. ПОЧЕМУ? разве этот код не должен применять getUsers к поддельной БД?

Ответ №1:

Учитывая, что вы меняете возвращаемое значение MockBlog на запрос ответа https://my-json-server.typicode.com/MosenzonTal/demo/db , вы получите хранящиеся там данные (включая идентификатор).