Python unittest изменяет значение подражательного патча на лету

У меня возникли проблемы при работе с патчами. Я использую mock из библиотеки unittest. При тестировании представления check_codes() я хотел бы установить другие значения в db.find_one()

api.utils.py

from pymongo import MongoClient
import os

def get_share_code_collection():
    client = MongoClient(os.getenv("DB_HOST"))
    db_handle = client[os.getenv("DB_NAME")]
    return db_handle["share_codes"]

views.py

def check_codes(self, request):
    db = get_share_code_collection()
    data = db.find_one({"specialist_id": {"$exists": True}}) 

test_views.py

 from unittest import mock
 @mock.patch("api.utils.get_share_code_collection")
 def test_share_code_correct_no_share_types(
     self, mocked_collection, mocked_share_code, user_model
 ):
     mocked_collection().find_one.return_value = True
     ...

 @mock.patch("api.utils.get_share_code_collection")
 def test_share_code_no_start_time(
     self, mocked_collection, user_model
 ):
    mocked_collection().find_one.return_value = False
     ...
        

Единственным обходным решением, которое я нашел, является установка

mocked_collection().find_one.side_effect = [True,False]

но после инициализации я не могу добавить значения. Как я могу решить эту проблему?

Вернуться на верх