Функция, которая удаляет каждый объект unittest.mock.Mock в контейнере, а затем из контейнера, и как проверить удаление?Python

Программы на 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 Я попробовал несколько разных вариантов, тот, что в коде, предназначен для ясности того, что я хочу сделать.

Бонусные баллы за добавление небольшого раздела о проверке утилизации. Мой подход заключался бы в том, чтобы собрать имена объектов, а затем проверить, находятся ли они в локальных или глобальных значениях.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ЕДИНЦИОННЫЕ Тестирование в DRF, ошибка Mock.Patch Transaction.atomic с unittest.mock.patch
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Издевательский тест pytest с декоратором @patch unittest.mock
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Укажите разницу между модулем и функцией в `unittest.mock.patch`: `AttributeError: <function ... > не имеет атрибута <..
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Python 3.11: нет модуля с именем «unittest.mock».
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Python 3.11: нет модуля с именем «unittest.mock».
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»