MIMINKING est un serveur HTTP moqueur HTTP natif Python inspiré de WireMock, conçu pour simplifier le processus de coups et de moqueries HTTP à des fins de test. Mimicker ne nécessite aucune bibliothèque tierce et est légère, ce qui le rend idéal pour les tests d'intégration, le développement local et les environnements CI.
MIMINKING peut être installé directement à partir de PYPI à l'aide de PIP ou de poésie:
pip install mimickerpoetry add mimickerPour commencer à Mimicker sur un port spécifique avec un simple point de terminaison, vous pouvez utiliser l'extrait de code suivant:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello" ).
body ({ "message" : "Hello, World!" }).
status ( 200 )
)MIMINKING peut gérer dynamiquement les paramètres de chemin. Voici comment vous pouvez vous moquer d'un point de terminaison avec une variable dans le chemin:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello/{name}" )
. body ({ "message" : "Hello, {name}!" })
. status ( 200 )
)
# When the client sends a request to /hello/world, the response will be:
# {"message": "Hello, world!"} Vous pouvez également se moquer des réponses avec des en-têtes personnalisés:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello" )
. body ( "Hello with headers" )
. headers ([( "Content-Type" , "text/plain" ), ( "Custom-Header" , "Value" )])
. status ( 200 )
)
# The response will include custom headers MiMicker vous permet de définir plusieurs itinéraires pour différentes méthodes et chemins HTTP. Voici un exemple avec les routes GET et POST :
from mimicker . mimicker import mimicker , get , post
mimicker ( 8080 ). routes (
get ( "/greet" )
. body ({ "message" : "Hello, world!" })
. status ( 200 ),
post ( "/submit" )
. body ({ "result" : "Submission received" })
. status ( 201 )
)
# Now the server responds to:
# GET /greet -> {"message": "Hello, world!"}
# POST /submit -> {"result": "Submission received"} Vous pouvez également se moquer de différents codes d'état HTTP pour le même point de terminaison:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/status" )
. body ({ "message" : "Success" })
. status ( 200 ),
get ( "/error" )
. body ({ "message" : "Not Found" })
. status ( 404 )
)
# GET /status -> {"message": "Success"} with status 200
# GET /error -> {"message": "Not Found"} with status 404 Mimicker prend en charge les corps JSON, ce qui le rend idéal pour les tests API:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/json" )
. body ({ "message" : "Hello, JSON!" })
. status ( 200 )
)
# The response will be: {"message": "Hello, JSON!"} En plus des corps JSON, Mimicker prend en charge d'autres types de contenu pour l'organisme de réponse. Voici comment renvoyer du contenu de texte ou de fichier:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/text" )
. body ( "This is a plain text response" )
. status ( 200 )
)
# The response will be plain text: "This is a plain text response" Vous pouvez également retourner des fichiers à partir d'un simulation de terminaison:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/file" )
. body ( open ( "example.txt" , "rb" ). read ()) # Mock a file response
. status ( 200 )
)
# The response will be the content of the "example.txt" file get(path) : définit un point de terminaison GET .post(path) : définit un point de terminaison POST .put(path) : définit un point de terminaison PUT .delete(path) : définit un point de terminaison DELETE ..body(content) : définit le body de réponse..status(code) : définit le status code de réponse..headers(headers) : définit headers de réponse. MIMINKING prend en charge Python 3.7 et plus.
Mimicker est libéré sous la licence du MIT. Voir la licence pour plus d'informations.