Функция, которая удаляет каждый объект unittest.mock.Mock в контейнере, а затем из контейнера, и как проверить удаление? ⇐ Python
Функция, которая удаляет каждый объект unittest.mock.Mock в контейнере, а затем из контейнера, и как проверить удаление?
Я работаю над библиотекой для алгоритмов, связанных с шестиугольными картами (в основном, над тем, что описано на redblobgames.com), я закончил писать реальный код и сейчас работаю над тестами. Я планировал написать «вспомогательные функции», чтобы упростить модульные тесты. Первый — это код для быстрого создания и изменения контейнера, содержащего объекты с шестиугольными координатами, а затем изменения атрибутов объектов для проверки на наличие ошибок и т. д. Хотя функция генератора работает нормально, функция демонтажа - нет. Я предполагаю, что это как-то связано с копированием, указателями и тому подобным, но, будучи самоучкой на данный момент, я в растерянности. Короче говоря, он не удаляет ни объекты, ни контейнер, как предполагалось. Мне нужна помощь с функцией "testgrp_teardown(test_grp:list) -> None".
импортировать модульный тест из unittest.mock импортировать Mock def testgrp_generator(center_obj:object|tuple|HexCoords, radius:int, override_coords:tuple=False) -> set: """ Создайте набор, содержащий объекты с атрибутами q, r и s, чтобы имитировать группы координат или SpriteGroup позволяют выполнять модульные тесты для более сложных функций. Координаты переопределения должны быть отформатированы следующим образом: (q, r, s, {имя_атрибута: override_value}) """ obj_grp = установить() all_coords = in_range(center_obj, радиус) для координат в all_coords: объект = Макет() obj.q = координаты [0] obj.r = координаты[1] obj.s = координаты[2] obj.block = Ложь если override_coords: для o_coord в override_coords: если obj.q == o_coord[0]: если obj.r == o_coord[1]: если obj.s == o_coord[2]: для ключа в o_coord[3].keys(): setattr(obj, ключ, o_coord[3][ключ]) obj_grp.add(obj) вернуть obj_grp def testgrp_teardown(test_grp:list) -> Нет: """ Очистите объекты Mock в test_grp. """ для объекта в test_grp: объект.dispose() дель test_grp Я попробовал несколько разных вариантов, тот, что в коде, предназначен для ясности того, что я хочу сделать.
Бонусные баллы за добавление небольшого раздела о проверке утилизации. Мой подход заключался бы в том, чтобы собрать имена объектов, а затем проверить, находятся ли они в локальных или глобальных значениях.
Я работаю над библиотекой для алгоритмов, связанных с шестиугольными картами (в основном, над тем, что описано на redblobgames.com), я закончил писать реальный код и сейчас работаю над тестами. Я планировал написать «вспомогательные функции», чтобы упростить модульные тесты. Первый — это код для быстрого создания и изменения контейнера, содержащего объекты с шестиугольными координатами, а затем изменения атрибутов объектов для проверки на наличие ошибок и т. д. Хотя функция генератора работает нормально, функция демонтажа - нет. Я предполагаю, что это как-то связано с копированием, указателями и тому подобным, но, будучи самоучкой на данный момент, я в растерянности. Короче говоря, он не удаляет ни объекты, ни контейнер, как предполагалось. Мне нужна помощь с функцией "testgrp_teardown(test_grp:list) -> None".
импортировать модульный тест из unittest.mock импортировать Mock def testgrp_generator(center_obj:object|tuple|HexCoords, radius:int, override_coords:tuple=False) -> set: """ Создайте набор, содержащий объекты с атрибутами q, r и s, чтобы имитировать группы координат или SpriteGroup позволяют выполнять модульные тесты для более сложных функций. Координаты переопределения должны быть отформатированы следующим образом: (q, r, s, {имя_атрибута: override_value}) """ obj_grp = установить() all_coords = in_range(center_obj, радиус) для координат в all_coords: объект = Макет() obj.q = координаты [0] obj.r = координаты[1] obj.s = координаты[2] obj.block = Ложь если override_coords: для o_coord в override_coords: если obj.q == o_coord[0]: если obj.r == o_coord[1]: если obj.s == o_coord[2]: для ключа в o_coord[3].keys(): setattr(obj, ключ, o_coord[3][ключ]) obj_grp.add(obj) вернуть obj_grp def testgrp_teardown(test_grp:list) -> Нет: """ Очистите объекты Mock в test_grp. """ для объекта в test_grp: объект.dispose() дель test_grp Я попробовал несколько разных вариантов, тот, что в коде, предназначен для ясности того, что я хочу сделать.
Бонусные баллы за добавление небольшого раздела о проверке утилизации. Мой подход заключался бы в том, чтобы собрать имена объектов, а затем проверить, находятся ли они в локальных или глобальных значениях.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ЕДИНЦИОННЫЕ Тестирование в DRF, ошибка Mock.Patch Transaction.atomic с unittest.mock.patch
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-