Ich versuche ein Paket zu testen, das Schnittstellen zu einigen Webdiensten bereitstellt. Es hat eine Testsuite, die die meisten Funktionen testen soll ohne Verbindung mit dem Internet. Allerdings gibt es einige andauernde Tests, die versuchen könnten, eine Verbindung zu den Internet/Download-Daten herzustellen, und ich möchte sie aus zwei Gründen daran hindern: Erstens, um sicherzustellen, dass meine Testsuite funktioniert, wenn keine Netzwerkverbindung verfügbar ist; zweitens, damit ich die Webdienste nicht mit übermäßigen Anfragen spammele.Python: blockieren Netzwerkverbindungen für Testzwecke?
Eine offensichtliche Lösung ist, mein Gerät zu trennen/WLAN zu deaktivieren, aber wenn ich Tests auf einem Remote-Computer ausführen, funktioniert das offensichtlich nicht.
Also, meine Frage: Kann ich Netzwerk/Port-Zugriff für einen einzigen Python-Prozess blockieren? („Sandbox“, aber nur blockierende Netzwerkverbindungen)
(AFAICT, hat pysandbox dies nicht tun)
EDIT: Ich verwende py.test
so brauche ich eine Lösung, die mit py.test
, falls arbeiten das betrifft alle vorgeschlagenen Antworten.
Das ist großartig! Irgendwelche Gedanken darüber, wie man py.test dazu bringt, dies vor allem anderen zu tun? – keflavich
Antwort auf meinen letzten Kommentar: Führen Sie dies in 'confests.py'. – keflavich
@keflavich Gut zu wissen - danke! –