Подтвердить что ты не робот

Единичное тестирование функции, возвращающей объект генератора

Название в значительной степени суммирует его: я попытался использовать assertEqual для проверки функции, которая возвращает объект-генератор, но это приводит к:

AssertionError: объект-генератор genexpr > в 0x2e70c80 > != (1,2,...)

Есть ли разумный способ сделать это, кроме повторения функции и запускать assertEqual для каждого отдельного выхода?

4b9b3361

Ответ 1

assertEqual(tuple(generator_object), (1, 2, ...))

если это бесконечный генератор, или вы просто хотите посмотреть на первые n результаты по какой-то причине, вы можете комбинировать это с itertools.islice

assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))

Ответ 2

Используйте next() для объекта генератора.

assertEqual(next(generator_object), (1, 2, ...))