Главная страница>Связанные с программированием>Другой исходный код

Mimicker-это Python-Contive HTTP-сервер, вдохновленный Wiremock, предназначенный для упрощения процесса загрязнения и насмешек HTTP-конечных точек в целях тестирования. Mimicker не требует сторонних библиотек и является легким, что делает его идеальным для интеграционного тестирования, локальной разработки и среда CI.

Функции

Установка

Mimicker может быть установлен непосредственно из PYPI, используя PIP или поэзию:

Использование PIP:

pip install mimicker

Используя поэзию:

poetry add mimicker

Использование

Чтобы запустить Mimicker на определенном порту с простой конечной точкой, вы можете использовать следующий фрагмент кода:

 from mimicker . mimicker import mimicker , get

mimicker ( 8080 ). routes (
    get ( "/hello" ).
    body ({ "message" : "Hello, World!" }).
    status ( 200 )
)

Примеры

Использование параметров пути

Мимикер может динамически обрабатывать параметры пути. Вот как вы можете издеваться над конечной точкой с переменной на пути:

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

Используя заголовки

Вы также можете издеваться над ответами с помощью пользовательских заголовков:

 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 позволяет вам определить несколько маршрутов для различных методов и путей HTTP. Вот пример с маршрутами GET и 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"} 

Обработка различных кодов статуса

Вы также можете издеваться над разными кодами статуса HTTP для одной и той же конечной точки:

 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 

Измешные ответы с телом JSON

Mimicker поддерживает тела JSON, что делает его идеальным для тестирования 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!"} 

Поддержка других типов телосложения (текст, файлы и т. Д.)

В дополнение к телам JSON Mimicker поддерживает другие типы контента для тела ответа. Вот как вы можете вернуть текст или содержимое файла:

Текстовый ответ:
 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" 

Ответ файла:

Вы также можете вернуть файлы из фиктивной конечной точки:

 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 

Доступные функции:

Требования

Mimicker поддерживает Python 3.7 и выше.

Лицензия

Mimicker выпускается по лицензии MIT. Смотрите лицензию для получения дополнительной информации.

Расширять
Дополнительная информация