Добрый день. Кто-нибудь из вас использует coverage в pycharm? У меня сильное ощущение, что он реально показывает погоду на Марсе: запускаю проект, ставлю точку дебага в функции, обрабатывающей сообщение от клиента - дебаггер срабатывает. Запускаю в coverage-режиме - говорит, что функция обработки вообще не вызывается. Хотя сервер продолжает обрабатывать запросы. Очевидно, что с coverage что-то не так.
С тестами все еще веселее. В некоторых местах доходит до абсурда. Есть юнит-тест, один метод из двух строк. Одна, по мнению coverage, вызывается, вторая - нет.
![f48f15efe7c2457d83219fd256abb4a5](https://habrastorage.org/files/f48/f15/efe/f48f15efe7c2457d83219fd256abb4a5)
Один из тестов вообще "не исполнялся":
![3841bfc98589473ea8a58f92eafee254](https://habrastorage.org/files/384/1bf/c98/3841bfc98589473ea8a58f92eafee254)
Естественно, при этом все тесты пробежали, успешно:
![a7be8101152046bc897dbf1910285ca8](https://habrastorage.org/files/a7b/e81/011/a7be8101152046bc897dbf1910285ca8)
А теперь десерт. Если закоментировать все тесты, и оставить лишь один, минорный, который тестирует только 2 функции в utils, то получим следующуюю картину:
![ef13114dfa4246e1a569285ff79b22e7](https://habrastorage.org/files/ef1/311/4df/ef13114dfa4246e1a569285ff79b22e7)
То есть, даже несмотря на то, что код дергать просто нечему, он все равно "покрыт" (см. список файлов проекта). И даже комментарии умудрились как-то "выполниться". А где-то даже частично:
![69c89be65b774286858926c726d309d0](https://habrastorage.org/files/69c/89b/e65/69c89be65b774286858926c726d309d0)
Но если мы создадим маленький файлик, который делает ничего, то произойдет чудо:
![c65e7959a5424aa4bb0b191aeebc4a39](https://habrastorage.org/files/c65/e79/59a/c65e7959a5424aa4bb0b191aeebc4a39)
Объясните, как эта магия работает? Я уже всю голову об стену сломал. Invalidate caches & restart, удалял все файлы на удаленном сервере (все работает через удаленный интерпретатор, до убунты в контейнере, в виртуалке). Даже контейнер сносил и раскатывал заново (с перенастройкой remote interpreter для выгрузки pycharm_helpers). Все папки с конфигами облазил в поисках кэша coverage. Ничего. Магия. Я не понимаю что происходит.