Я работаю с Python в системе Windows, новичок в Python и связанном с ним модульном тестировании, и мне нравится учиться!
Мне нужно покрытие модульными тестами для моего метода open_collection и я борюсь с
моим макетом MongoClient, последующим вызовом метода open_collection и получением ожидаемого имени результирующей коллекции. Я знаю, что, должно быть, упускаю что-то очень простое, и я много искал в Интернете и нашел много разных вещей, которые можно попробовать, но ни одна из них не соответствует моим точным требованиям.
Основная проблема заключается в следующем: после того, как я выполняю setattr обезьяньего патча с помощью MagicMock клиента и вызываю метод open_collection, передавая имя «test», имя объекта коллекции экземпляра:
"MagicMock name=' макет.getitem().getitem().name' id='2686909818128'>"
Этот пост — самый близкий мне дошли до моей проблемы, и я попробовал некоторые из упомянутых вещей, хотя сценарии не совсем соответствуют моим, но безуспешно:
https://adil.medium.com/how-to-fix -returning-magicmock-object-instead-of-return-value-b262cc76abdd
Я пробовал установить другие свойства/атрибуты в моем макете перед переходом к методу open_collection, но в нем ничего не представлено коллекция из мока после возврата из вызова метода open_collection. Даже return_value. Возвращаемое значение, которое я вижу в коллекции экземпляра:
Я ценю вашу помощь!
class Common():
collection = {}
data = {}
def open_collection(self, name):
if 'MONGO_URL' in os.environ:
db_name = "testDB"
client = MongoClient(os.environ['MONGO_URL'])
db_object = client[db_name]
self.collection = db_object[name]
else:
print("Environment variable MONGO_URL not set! Exiting.")
sys.exit(0)
И тест:
def test_open_collection(monkeypatch):
mock = MagicMock(return_value='rvTest')
monkeypatch.setattr('pymongo.MongoClient', lambda x: MagicMock(db=MagicMock(collection=lambda x: mock)))
_module = importlib.import_module(API_MODULE)
_instance = _module.Common()
_instance.open_collection("test")
assert _instance.collection.name == 'test'
Подробнее здесь: https://stackoverflow.com/questions/786 ... ent-db-and
Python MongoDB MagicMock с модульным тестом Mongopatch для назначения клиента, базы данных и коллекции ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Издевательство над модульным тестом Python – динамическая оценка переменной модуля
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Типизированный модульным тестом HttpClient с Microsoft.Extensions.Http.Resilience
Anonymous » » в форуме C# - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему мой код не удаляет zip-файл, созданный моим модульным тестом? [дубликат]
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-