При запуске unittests я хотел бы видеть предупреждения об устаревании. Похоже, что поскольку предупреждения об устаревании Python 2.7 отключены. Цитирую со страницы:
Для Python 2.7 было принято политическое решение по умолчанию отключать предупреждения, представляющие интерес только для разработчиков. DeprecationWarning и его потомки теперь игнорируются, если не запрашивается иное, что не позволяет пользователям видеть предупреждения, запускаемые приложением. Это изменение также было внесено в ветку, которая стала Python 3.2. (Обсуждается на stdlib-sig и выполняется в выпуске 7319.)
Позже кажется, что я должен видеть предупреждения об устаревании при запуске unittests:
Модуль unittest также автоматически повторно включает предупреждения об устаревании при запуске тестов.
Ну ... Попросту говоря, у меня это не работает, так что я, должно быть, делаю что-то не так. Я тестировал следующий код:
import warnings
import unittest
def spam():
warnings.warn('test', DeprecationWarning, stacklevel=2)
return 'spam'
class Eggs(object):
def __init__(self):
self.spam = spam()
class Test(unittest.TestCase):
def test_warn(self):
eggs = Eggs()
self.assertEqual('spam', eggs.spam)
Затем я запускаю код (сохраненный в spam.py
):
python -m 'unittest' spam
И это дает мне следующий результат:
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Нет предупреждения об устаревании. Итак, вопрос: что я здесь делаю не так?