Size: a a a

testing_in_python

2019 February 07

СС

Сказочный Сникерс in testing_in_python
Наталья М
Привет, подскажите.. кто-нибудь мокает внешнее апи как-либо? можешь подсказать как это сделать быстро? или либы?
источник

НМ

Наталья М in testing_in_python
Причем, нужно подменять ответы и коды ответов
источник

СС

Сказочный Сникерс in testing_in_python
ну пожалуйста, в ссылке выше все есть
источник

СС

Сказочный Сникерс in testing_in_python
там в качестве примера do_PUT, можно любой другой. можно в нем сделать self.send_response(<ANY RESPONSE CODE>)
источник

СС

Сказочный Сникерс in testing_in_python
в целом это готовое решение, которое можно подключать как угодно:
-можно взять как есть
-можно передать свои кастомные SimpleHTTPServer и SimpleHTTPRequestHandler
-можно подключить разово в виде:
mock = HttpMockDaemon()
mock.start()

print(mock.req_handler._responses)
mock.stop()

-можно как контекстный менеджер:
with HttpMockDaemon() as mock:
    …
    print(mock.req_handler._responses)
источник

НМ

Наталья М in testing_in_python
Сказочный Сникерс
там в качестве примера do_PUT, можно любой другой. можно в нем сделать self.send_response(<ANY RESPONSE CODE>)
я не совсем понимаю, я хочу на определенные урлы получать в одном тесте 200, а в другом 404.. а тут кажется, нельзя на лету изменить респонс на один и тоже урл..
источник

СС

Сказочный Сникерс in testing_in_python
там есть переменная self.path
источник

СС

Сказочный Сникерс in testing_in_python
она содержит локейшен, на который пришел запрос, то есть можно в любом типа запроса сделать условие:
if self.path == ‘/mypath’:
   self.send_response(200)
elif self.path == ‘/anotherpath’:
   self.send_response(400)
источник

СС

Сказочный Сникерс in testing_in_python
ну или около того
источник

НМ

Наталья М in testing_in_python
Сказочный Сникерс
она содержит локейшен, на который пришел запрос, то есть можно в любом типа запроса сделать условие:
if self.path == ‘/mypath’:
   self.send_response(200)
elif self.path == ‘/anotherpath’:
   self.send_response(400)
это по сути написать свой апи.. а я хотела что-то попроще
источник

СС

Сказочный Сникерс in testing_in_python
хехе а как вы хотели?)
источник

b

betzy in testing_in_python
Наталья М
это по сути написать свой апи.. а я хотела что-то попроще
гггг
источник

НМ

Наталья М in testing_in_python
думала, вдруг чего изобрели уже
источник

VK

Victor Kaplunov in testing_in_python
Наталья М
Привет, подскажите.. кто-нибудь мокает внешнее апи как-либо? можешь подсказать как это сделать быстро? или либы?
Я Mountebank для этого использовал. Моки настраиваются JSON запросами в фикстуре теста. https://habr.com/ru/post/335900/
источник

НМ

Наталья М in testing_in_python
спасибо, пойду изучать
источник

СС

Сказочный Сникерс in testing_in_python
чет больно громоздко, имхо
источник

VK

Victor Kaplunov in testing_in_python
Сказочный Сникерс
чет больно громоздко, имхо
В смысле, не на питоне и придется  плодить сущности?
источник

b

betzy in testing_in_python
можно поднять жсон сервер https://github.com/typicode/json-server
быстро, легко, подставляя жсон реквесты которые тебе надо
источник

СС

Сказочный Сникерс in testing_in_python
Victor Kaplunov
В смысле, не на питоне и придется  плодить сущности?
в смысле что где то надо что то отдельно держать, настраивать да еще и конфиг в json ах, хотя бы в примере выглядят громоздко
источник

СС

Сказочный Сникерс in testing_in_python
плюс мне не пока не понятно как с помощью этого реализовать именно внешнее АПИ? то есть мое приложение в конфиге принимает хост порт внешнего апи и что то шлет, я хочу убедиться что оно отправило верный запрос
источник