O Mimicker é um servidor de zombaria HTTP nativo do Python inspirado no Wiremock, projetado para simplificar o processo de Stubbing and Zocking Http Endpoints para fins de teste. O Mimicker não requer bibliotecas de terceiros e é leve, tornando-o ideal para testes de integração, desenvolvimento local e ambientes de IC.
Mimicker pode ser instalado diretamente a partir do Pypi usando PIP ou poesia:
pip install mimickerpoetry add mimickerPara começar o Mimicker em uma porta específica com um terminal simples, você pode usar o seguinte snippet de código:
from mimicker . mimicker import mimicker , get
mimicker ( 8080 ). routes (
get ( "/hello" ).
body ({ "message" : "Hello, World!" }).
status ( 200 )
)O Mimicker pode lidar com os parâmetros do caminho dinamicamente. Veja como você pode zombar de um terminal com uma variável no caminho:
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!"} Você também pode zombar de respostas com cabeçalhos 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 O Mimicker permite definir várias rotas para diferentes métodos e caminhos HTTP. Aqui está um exemplo com rotas GET e 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"} Você também pode zombar de diferentes códigos de status HTTP para o mesmo ponto 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 suporta corpos JSON, tornando -o ideal para testes 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!"} Além dos corpos JSON, o Mimicker suporta outros tipos de conteúdo para o corpo de resposta. Veja como você pode retornar conteúdo de texto ou arquivo:
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" Você também pode retornar arquivos de um ponto 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 um ponto de GET .post(path) : define um ponto de extremidade POST .put(path) : define um ponto de PUT .delete(path) : define um terminal DELETE ..body(content) : define o body de resposta..status(code) : define o status code da resposta..headers(headers) : define headers de resposta. Mimicker suporta o Python 3.7 e acima.
Mimicker é liberado sob a licença do MIT. Veja a licença para obter mais informações.