Тестовое задание: функция, находящая в информации, полученной из запроса к superhero-api (основанного на https://superheroapi.com/) + тесты на эту функцию.
Функция находит из результата обращения к superhero-api самого высокого супергероя по параметрам gender (в API это значения 'Female', 'Male' и '-') и is_employed (булево значение). Написанная функция затем тестируется. Используется pytest и параметризация. Также присутствуют скрипты для установки всех нужных пакетов на Linux (для дистрибутивов с менеджерами dnf, yum, pacman, apt) и для запуска тестов.
.
├── function.py
├── install_packages.sh
├── run_tests.sh
└── tests
├── conftest.py
├── test_incorrect_values_raise_value_error.py
└── test_tallest_of_filtered_returns_correct_hero.py
- function.py - написанная функция, обрабатывающая JSON для поиска нужного супергероя, которую необходимо протестировать
- install_packages.sh - bash-скрипт для установки Python, pip и всех пакетов, необходимых для запуска тестов (pytest, requests)
- run_tests.sh - bash-скрипт для запуска всех тестов
- tests/conftest.py - файл, содержащий фикстуру, выполняющую запрос к API
- tests/test_incorrect_values_raise_value_error.py - параметризованный негативный тест, проверяющий все возможные некорректные наборы параметров, чтобы удостовериться, что функция при их обнаружении вызывает ошибку (8 наборов параметров)
- tests/test_tallest_of_filtered_returns_correct_hero.py - параметризованный позитивный тест, проверяющий все возможные шесть результатов функции на возвращение корректного супергероя и отсутствие чувствительности параметра gender к регистру (8 наборов параметров)
- Скачать и распаковать архив с файлами или клонировать репозиторий, прописать в желаемой директории команду:
git clone https://github.com/polyastrikesagain/superheroes_api_test/
- В папке проекта обнаружить файлы function.py (функция), папку tests с двумя тестами .py и файлом conftest.py
- В папке проекта найти два bash-скрипта install_packages.sh и run_tests.sh
- Удостовериться, что каждый скрипт можно запустить (Свойства - Разрешения - Разрешить исполнять как программу)
- Запустить install_packages.sh (потребуется ввести пароль пользователя для установки Python и pip), кликнув на него или выбрав ПКМ - Открыть в консоли или прописав в консоли в папке проекта
./install_packages.sh - Запустить run_tests.sh, кликнув на него, выбрав ПКМ - Открыть в консоли или прописав в консоли в папке проекта
./run_tests.sh - В консоли будет описан результат запуска тестов
- Повторить шаги инструкции для дистрибутивов Linux за исключением шагов с файлами install_packages.sh и run_tests.sh
- Если Python не установлен, установить его можно на официальном сайте
- Для установки пакетов в командной строке прописать
py -m pip install pytest requests - Для запуска тестов в командной строке, находясь в директории проекта, прописать
pytest - В консоли будет описан результат запуска тестов
- Удалить Windows