Simulates Docker container and network failures to test application resilience
Project description
sabotage
sabotage
is a package designed to assist developers in testing the resilience and fault tolerance of applications running in Docker containers. It offers functionality to simulate failures by either temporarily stopping containers (sabotaged_container
) or disconnecting them from their networks (sabotaged_network
).
Installation
$ pip3 install sabotage
Usage
sabotaged_container
Temporarily stops a specified Docker container and restarts it after performing tasks within the context. Useful for testing how applications handle Docker container failures.
import asyncio
from sabotage import sabotaged_container
async def test_container_restart():
async with sabotaged_container(service_name="webapp"):
# Perform actions while the container is stopped
print("Container is temporarily stopped.")
# Actions after the container restarts
print("Container has restarted.")
asyncio.run(test_container_restart())
sabotaged_network
Disconnects and reconnects a container from its networks to simulate network issues.
import asyncio
from sabotage import sabotaged_network
async def test_network_disruption():
async with sabotaged_network(service_name="webapp"):
# Perform actions while the network is disconnected
print("Network is temporarily disconnected.")
# Actions after the network is reconnected
print("Network has been reconnected.")
asyncio.run(test_network_disruption())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.