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

Есть ли способ проверить с помощью Python unittest assert, если итерабельность не пуста?

После отправки запросов службе я получаю словарь/список назад, и я хочу убедиться, что он не пуст. Я на Python 2.7.

Я удивлен, что не вижу метода assertEmpty для экземпляра класса unittest.TestCase.

Существующие альтернативы, такие как:

self.assertTrue(bool(d))

и

self.assertNotEqual(d,{})

и

self.assertGreater(len(d),0)

просто не выглядят правильно.

Является ли этот вид метода отсутствующим в растровой среде Python? Если да, то какой был бы самый питонический способ утверждать, что итерабельность не пуста?

4b9b3361

Ответ 1

Пустые списки /dicts оцениваются как False, поэтому self.assertTrue(d) выполняет задание.

Ответ 2

Зависит именно от того, что вы ищете.

Если вы хотите убедиться, что объект является итерируемым, и он не пуст:

# TypeError: object of type 'NoneType' has no len()
# if my_iterable is None
self.assertTrue(len(my_iterable))

Если для тестируемого объекта установлено значение None:

self.assertTrue(my_maybe_iterable)

Ответ 3

Может быть:

self.assertRaises(StopIteration, next(iterable_object))