Есть ли библиотека, в которой из удобных для носа утверждений такие вещи, как членство и идентичность (например, assert_contains(x, y)
, assert_is(a, b)
)?
python-nose: библиотека утверждений?
Ответы (2)
Nose предоставляет автономные версии утверждений stdlib:
from nose.tools import assert_in, assert_is
Версии unittest2 для более старых версий Python, скорее всего, можно обернуть, используя технику, аналогичную той, что используется в tools.py.
person
jek
schedule
16.01.2011
Ааа, так и есть. Видимо, все эти годы мне не хватало этого маленького абзаца в верхней части документации по инструментам… Спасибо.
- person David Wolever; 16.01.2011
Хм… Для меня их не существует, но, как вы упомянули, я подозреваю, что это потому, что я использую только 2.6. Я пошел дальше и написал патч
nose
, который попытается использовать утверждения unittest2, если они доступны: code.google.com/p/python-nose/issues/detail?id=392
- person David Wolever; 16.01.2011
Stdlib unittest предоставляет как assertIn
, так и assertIs
и может запускаться через нос. Вы ищете что-то кроме этого? Кстати, эти методы доступны только с версии Python 2.7, и если вы хотите использовать их для более старой версии Python, они доступны по адресу . пакет unittest2
person
Senthil Kumaran
schedule
16.01.2011
Мне не нравятся встроенные утверждения, потому что я не считаю, что строгий стиль xUnit хорошо сочетается с Python: префикс
self.
во всех утверждениях не так уж забавен, а camelCase
все выглядит странно.
- person David Wolever; 16.01.2011
Ага, понятно. Тогда это вопрос предпочтений. Некоторые модули/библиотеки имеют определенные стили. Насколько я знаю, вы не можете использовать собственную часть в unittest, вы можете использовать псевдоним camelCase для чего-то, что вы предпочитаете.
- person Senthil Kumaran; 16.01.2011