UNPKG

2gis-maps

Version:

Interactive 2GIS maps API, based on Leaflet

83 lines (59 loc) 4.24 kB
### Подготовка и запуск 1. Устанавливаем python 2. Устанавливаем virtualenv ``` $ pip install -U virtualenv ``` 3. Готовим локальный environment ``` $ ./prepare.sh ``` Если используется PyCharm удобно добавить локальный env. File -> Settings -> Project -> Шестеренка -> Добавить локальный env -> выбрать ./.env/bin/python2.7 4. Устанавливаем [selenium-launchers](https://github.com/bayandin/selenium-launchers): ```bash # скачать zip-архив и распаковать куда-нибудь на свою машину cd selenium-launchers/ ./start_linux.sh (./start_mac.sh | ./start_win.sh) # запустит selenuim-сервер на порту 4455 ``` 5. Тесты используют шаблоны страниц. Для их генерации нужно выполнить: ``` $ ./template_render.sh ``` 6. Если не поднят, поднять сервер MapsAPI 7. Запустить тесты ``` $ ./run.sh ``` Чтобы запускать только конкретные тесты, необходимо скопировать файл run.sh в run_my.sh и добавить файл, класс и метод теста, например: ```bash #!/usr/bin/env bash source .env/bin/activate PYTHONPATH=$(pwd) .env/bin/lode_runner -v tests/firm_callout_test.py:FirmCallout.firm_photo_test --with-xunit exit 0; ``` ### Содержимое проекта * В пакете classes хранятся компоненты (сomponents), исключения (exceptions), утилиты (util) * В пакете config хранится конфиг для contesto * В пакете tests хранятся тесты и пакеты тестов #### Исключения Бывает необходимо поднять и обработать исключение. Все типы исключений для карты, взаимодействия с WebApi и т.д. описываются в classes.exceptioins.exceptions. Наследуются от базового типа исключений contesto, а затем от базового типа исключения API карт. #### Утилиты В данном пакете описываются утилиты и базовые классы тестов для API карт. На данный момент там содержится базовый класс для тестов MapsAPIBaseTest унаследованный от UnittestContestoTestCase, с переопределенным методом setUp. #### Компоненты В данном пакете описываются компоненты страницы, страница и базовой компонент. Базовый компонент наследуется от класса BaseComponent contesto. В нем определяются черты (свойства и методы) свойственные всем компонентам проекта. ### Code style * Так как используется паттерн pageObject, в тестах не должно быть обращения к драйверу, за исключением пользовательских элементов (кнопки, ползунки и все что не входит в API карт) * Для проверки кода перед коммитом рекомендуется создать или добавить в pre-commit git hook содержимое pep8-hook.sh. Для работы хука должен иметься pep8. * Имена файлов с тестами `<название>_test.py` * Имена классов оформляются в `CapitalizedWords` * Имена тестовых методов `<объект тестирования>_<что тестируется>_test(self, *args, **kwargs)` * Допускается использование нескольких assert`ов в тесте если они связаны с тестируемым функционалом * Использовать только assert`ы contesto