Mimicker es un servidor HTTP HTTP de Python inspirado en Wiremock, diseñado para simplificar el proceso de los puntos finales HTTP de retroceso y burla para fines de prueba. Mimicker no requiere bibliotecas de terceros y es liviano, lo que lo hace ideal para pruebas de integración, desarrollo local y entornos de CI.
Mimicker se puede instalar directamente desde PYPI usando PIP o poesía:
pip install mimickerpoetry add mimickerPara comenzar a Mimicker en un puerto específico con un punto final simple, puede usar el siguiente fragmento de código:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello" ).
body ({ "message" : "Hello, World!" }).
status ( 200 )
)Mimicker puede manejar los parámetros de ruta dinámicamente. Así es como puede burlarse de un punto final con una variable en la ruta:
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!"} También puede burlarse de las respuestas con encabezados personalizados:
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 le permite definir múltiples rutas para diferentes métodos y rutas HTTP. Aquí hay un ejemplo con las rutas GET and 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"} También puede burlarse de diferentes códigos de estado HTTP para el mismo punto final:
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 es compatible con los cuerpos JSON, lo que lo hace ideal para las pruebas de 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!"} Además de los cuerpos JSON, Mimicker admite otros tipos de contenido para el cuerpo de respuesta. Así es como puede devolver el contenido de texto o archivo:
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" También puede devolver archivos desde un punto final simulado:
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) : define un punto final GET .post(path) : define un punto final POST .put(path) : define un punto PUT .delete(path) : define un punto final DELETE ..body(content) : define el body de respuesta..status(code) : define el status code de respuesta..headers(headers) : Define headers de respuesta. Mimicker es compatible con Python 3.7 y más.
Mimicker es liberado bajo la licencia MIT. Consulte la licencia para obtener más información.