Здравствуйте, уважаемые!
Нужен ваш совет.
Есть проект, на котором работает, и довольно успешно BDD тесты на Behave. Автоматизированы как веб часть, так и API, сейчас речь пойдет об API.
На проекте используется(куда без них xD ) куча third-party сервисов, которые мне совсем неинтересно тестить, и которые добавляют нестабильности моим автотестам, да и к тому же отнимают драгоценное время как разработчиков, так и моей команды. Злободневно это Mandrill и Sailthru ( чёрт побери эту проверку писем )
Так вот есть желание переадресовывать запросы апи на локалхост и там сделать собственный сервис, на моках, к примеру, который будет валидно отдавать ответы апишке, тестам же показывать реквест от АПИ и валидировать как раз его. Есть ли у вас, идеи, с чего бы начать?
Пока работаем в вагранте, но сейчас будем переходить в докер(через недельки 2), не суть особо, в вагранте используем CentOS, в докере будем юзать Ubuntu.
Просто заглушки не подойдут, нужно отдавать апишке вменяемый респонз и передават тестам для проверки реквест.
Это, конечно, хорошо, но тут идёт речь о пайтон)
Напишите эмулятор на SoapUI, это просто быстро и очень гибко. Для своих нужд только его и использую. Позволяет делать даже асинхронно-извращенные вещи типа вход аля REST сервис а на выходе - SOAP
P.S.: Если принципиально Python-only, то как и писали выше, Flask легко покроет ваши нужды.
“Парни и девченки” уже 300 лет собираем разные полезные ссылки у нас на github, пора бы уже запомнить урл
Советую посмотреть в секцию TDD \ ATTD \ BDD (Mocking) по python
Найдете много интересного
mock - A Python Mocking and Patching Library for Testing.
Ludibrio - Elegant test doubles framework in Python (mocks, stubs, spy, and dummies).
responses - A utility library for mocking out the requests Python library.
doublex - Powerful test doubles framework for Python.
freezegun - Travel through time by mocking the datetime module.
httpretty - HTTP request mock tool for Python.
httmock - A mocking library for requests for Python 2.6+ and 3.2+.
pretenders - fake servers for testing.
mock-server - Simple mock server for REST and XML-RPC API with admin panel based on tornado.
VCR.py - Automatically mock your HTTP interactions to simplify and speed up testing.