Python 3.2 представил ResourceWarning
для незакрытых системных ресурсов (сетевые сокеты, файлы):Отключение Python 3.2 ResourceWarning
Хотя код работает чистым в производстве, я получаю много следующих предупреждений при выполнении модульных тестов за счет использования сторонних библиотек, где появляется предупреждение. Я мог бы исправить библиотеку, но, с другой стороны, было намного проще просто игнорировать ее во время тестового прогона.
block_io-python/block_io/__init__.py:182: ResourceWarning: unclosed <ssl.SSLSocket fd=11, family=AddressFamily.AF_INET, type=SocketType.SOCK_STREAM, proto=6, laddr=('x', 58395), raddr=('x, 443)>
Каким образом можно отключить эти предупреждения? Я пробовал следующее, но никакого эффекта:
warnings.filterwarnings("ignore", category=ResourceWarning)
(Запускать во время времени испытания единицы измерения).
Может быть, мне позволено, если очевидное поведение не работает, и я не знаю, что я делаю неправильно? :) –
Может быть, модуль, выдающий предупреждение, использует 'warnings.showwarning'. Кажется, что функция обходит предупреждающий фильтр. – Dunes
Возможно, сторонний код также добавляет 'warnings.filterwarnings ('default', category = ResourceWarning)', который будет переопределять ваш, помещаясь перед ним? И если теория @Dunes верна, вы можете перезаписать «warnings.showwarning» в Context Manager с помощью warnings.catch_warnings(): ' – greschd