Une minute
Simuler un mode offline pour certains tests Pytest
Pour certains, cet article peut sembler inutile car ils vous diront qu’il suffit de couper le wifi sur son laptop pour ne plus avoir internet. Ce n’est pas faux, mais parfois et sans rentrer dans le détail, il n’est pas toujours possible de travailler offline pendant des heures.
Voici donc un tip pour simuler dans des tests unitaires la déconnexion d’internet. Il suffit de créer la fixture pytest suivante et de l’appeler dans vos tests.
En pré-requis, il suffit d’installer le package pytest-network
.
import pytest
import socket
_original_connect = socket.socket.connect
def patched_connect(*args, **kwargs):
...
# It depends on your testing purpose
# You may want a exception, add here
# If you test unconnectable situations
# it can stay like this
@pytest.fixture
def enable_network():
socket.socket.connect = _original_connect
yield
socket.socket.connect = patched_connect
@pytest.fixture
def disable_network():
socket.socket.connect = patched_connect
yield
socket.socket.connect = _original_connect
Testé et approuvé, très utile en ce qui me concerne.