Página Inicial>Relacionado com a programação>Outro código-fonte

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.

Características

Instalação

Mimicker pode ser instalado diretamente a partir do Pypi usando PIP ou poesia:

Usando PIP:

pip install mimicker

Usando poesia:

poetry add mimicker

Uso

Para 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 )
)

Exemplos

Usando parâmetros de caminho

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!"} 

Usando cabeçalhos

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 

Várias rotas

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"} 

Lidando com diferentes códigos de status

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 

Zombando de respostas com o corpo JSON

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!"} 

Suportando outros tipos de corpo (texto, arquivos, etc.)

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:

Resposta do texto:
 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" 

Resposta do arquivo:

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 

Recursos disponíveis:

Requisitos

Mimicker suporta o Python 3.7 e acima.

Licença

Mimicker é liberado sob a licença do MIT. Veja a licença para obter mais informações.

Expandir
Informações adicionais