Как определить, попадают ли в сеть юнит-тесты Python / Django? - PullRequest
4 голосов
/ 07 декабря 2011

Недавно я был добавлен в проект для добавления тестового покрытия (модуль юнит-теста Python / Django).Это приложение интенсивно работает с веб-API и JSON-запросами и тому подобным, и часть моей работы заключается в том, чтобы убедиться, что ни один из существующих или будущих тестов не требует данных в реальном времени для работы сети.

Что я хотел бы знать - есть ли способ обернуть мой набор тестов для обнаружения всех попыток сетевого трафика?

Например, для более ранней части этого приложенияЯ переписал sys.stdout как способ обнаружения и перехвата, когда любые субмодули записывают в stdout.Есть ли что-то настолько простое, что я могу сделать, чтобы мои попытки получить доступ к сети?

РЕДАКТИРОВАТЬ: Я ценю быстрые ответы.Потянуть за кабель, конечно, простое решение, но я боюсь, что разорвать мое сетевое соединение не вариант (большая часть работы над SSH).

Я немного знаком с такими инструментами, как Wireshark, но я надеялся на что-то, что могло бы быть разумно интегрировано в сам код.Утилита jcollado urlopen может потенциально быть тем, что я ищу, но если нет, то похоже, что обычного инструмента сетевого мониторинга может быть достаточно.

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Вы можете исправить все методы, которые используются для получения URL-адреса и регистрации каждой попытки, запуска события или любого другого, более удобного для вас обнаружения.

Посмотрите, например, на библиотеку насмешек dingus.В разделе исправлений на странице pypi приведен пример исправления urllib2.urlopen, который может быть полезен.Я помню, что видел доклад (извините, я не нашел ссылку) от Гэри Бернхардта (автора dingus), в котором он показал, как с помощью этой техники значительно сократить время тестирования в приложении django.Таким образом, вы можете использовать его не только для обнаружения доступа к сети, но и для того, чтобы избежать использования сети в ваших тестовых случаях.

1 голос
/ 07 декабря 2011

Существует множество инструментов для обнаружения попыток сетевого трафика.

Например netstat output enter image description here

или wireshark

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...