Тестовые задания по Python

Здесь собраны реальные тестовые задания, которые дают соискателям на стажировках и junior-позициях. Эти задания помогут лучше подготовиться к отбору, потренироваться и пополнить портфолио

стэк>
Компания>
Сложность>

Python • Высокая сложность

Высокий уровень сложности - 3 звезды

Тестовое задание по Python от компании Python

Тестовое задание в Контент В Контенте мы занимаемся агрегацией отелей поставщиков (supplier), объединяя одинаковые отели от разных поставщиков в единую сущность (мета-отель). В этом задании мы предлагаем реализовать базовый сервис (API) для работы с отелями. Для дополнительного контекста и перспективы, представьте что это ключевой сервис в вашем тревел стартапе. Функциональность Список API, которые должны быть покрыты в этом задании: - Создать отель поставщика - Объединить 1 и более отелей поставщиков в один мета-отель - Получить список мета-отелей и входящих в них отелей - Перепривязать отель к другому мета-отелю - Получить историю привязки отеля (к каким мета-отелям в какой момент времени он был привязан) Требования и ограничения - Авторизация/аутентификация не нужна - Отель может быть привязан только к одному мета-отелю в один момент времени - В мета-отеле должен быть минимум один отель - Отель можно отвязать от мета-отеля и привязать к другому Пример данных Мета-отель: ``` id: mercure_pattaya id: windways ``` Отель: ``` id: 1 name: Mercure Pattaya supplier_id: AAA id: 2 name: Mercure Pattaya supplier_id: BBB id: 3 name: Windways Hotel supplier_id: AAA ``` Оценка Цель этого тестового задания - увидеть ваш лучший/самый идиоматичный код на Python/Django. Мы ожидаем увидеть: - Документацию API - README с описанием как запустить проект, запустить тесты и т.д - Чистую архитектуру, с корректной связанностью кода (decoupling), complexity isolation - Аккуратный, понятный, поддерживаемый код, с наличием комментариев к коду (если нужны) - Код на публичной платформе (github/gitlab/bitbucket) - Отсутствие "мертвого" кода (т.е пустые модули, неиспользуемые функции и параметры и т.д) - Тесты (доказательство работоспособности кода) - Реализация на Django + любой REST или RPC фреймворк, с которым вам комфортно - PostgreSQL в качестве БД (помните про блокировки, транзакции, race conditions) - Сервис корректно работает, если запущен в нескольких экземплярах (инстансах) - Проект должен запускаться через docker-compose Вопросы и сроки Cтрогих сроков нет, но мы хотели бы получить от вас примерную оценку времени. Не стесняйтесь задавать вопросы по заданию, если таковые возникнут.

AppBooster • Высокая сложность

Высокий уровень сложности - 3 звезды

Тестовое задание по Python от компании AppBooster

Тестовое задание: backend Мы создаём мобильные приложения и иногда для тестирования гипотез приходится запускать AB-тесты. Для этого нам нужна система, представляющая собой простейшее REST API, состоящее из одного эндпойнта. API и распределение Мобильное приложение при запуске генерирует некоторый уникальный ID клиента (который сохраняется между сессиями) и запрашивает список экспериментов, добавляя HTTP-заголовок `Device-Token`. В ответ сервер отдаёт список экспериментов. Для каждого эксперимента клиент получает: * Ключ: имя эксперимента. В клиенте есть код, который будет изменять какое-то поведение в зависимости от значения этого ключа * Значение: строка, одна из возможных опций (см. ниже) Важно, чтобы девайс попадал в одну группу и всегда оставался в ней. Эксперименты 1. Цвет кнопки У нас есть гипотеза, что цвет кнопки «купить» влияет на конверсию в покупку * Ключ: `button_color` * Опции: * `#FF0000` → 33.3% * `#00FF00` → 33.3% * `#0000FF` → 33.3% Так после 600 запросов к API с различными `DeviceToken` каждый цвет должны получить по 200 девайсов 2. Стоимость покупки У нас есть гипотеза, что изменение стоимости покупки в приложении может повлять на нашу маржинальную прибыль. Но чтобы не терять деньги в случае неудачного эксперимента, 75% юзеров будут получать старую цену и только на малой части аудитории мы протестируем изменение: * Ключ `price` * Опции: * `10` → 75% * `20` → 10% * `50` → 5% * `5` → 10% Требования и ограничения 1. Если девайс однажды получил значение, то он всегда будет получать только его 1. Эксперимент проводится только для новых девайсов: если эксперимент создан после первого запроса от девайса, то девайс не должен ничего знать об этом эксперименте Задание 1. Спроектируйте, опишите и реализуйте API 2. Добавьте эксперименты (1) и (2) в приложение 3. Создайте страницу для статистики: простая таблица со списком экспериментов, общее количество девайсов, участвующих в эксперименте и их распределение между опциями Можно использовать любые тенхологии и библиотеки Плюсом будет: * Наличие тестов * Задеплоенная версия приложения * Скорость ответа от сервера <100ms

AvitoTech • Средняя сложность

Средний уровень сложности - 2 звезды

Тестовое задание по Python от компании AvitoTech

Тестовое задание на позицию стажера/junior бекенд разработчика в юнит Авто Задача: Нужно сделать HTTP сервис для сокращения URL наподобие [Bitly](https://bitly.com/) и других сервисов. UI не нужен, достаточно сделать JSON API сервис. Должна быть возможность: - сохранить короткое представление заданного URL - перейти по сохраненному ранее короткому представлению и получить redirect на соответствующий исходный URL Требования: - Язык программирования: Go/Python/PHP/Java/JavaScript - Предоставить инструкцию по запуску приложения. В идеале (но не обязательно) – использовать контейнеризацию с возможностью запустить проект командой [`docker-compose up`](https://docs.docker.com/compose/) - Требований к используемым технологиям нет - можно использовать любую БД для персистентности - Код нужно выложить на github (просьба не делать форк этого репозитория, чтобы не плодить плагиат) Усложнения: - Написаны тесты (постарайтесь достичь покрытия в 70% и больше) - Добавлена валидация URL с проверкой корректности ссылки - Добавлена возможность задавать кастомные ссылки, чтобы пользователь мог сделать их человекочитаемыми - [http://bit.ly/avito-auto-be](http://bit.ly/avito-auto-be) - Проведено нагрузочное тестирование с целью понять, какую нагрузку на чтение может выдержать наш сервис - Если вдруг будет желание, можно слепить простой UI и выложить сервис на бесплатный хостинг - Google Cloud, AWS и подобные.

KazanExpress • Средняя сложность

Средний уровень сложности - 2 звезды

Тестовое задание по Python от компании KazanExpress

KazanExpress test for Python developer Here lies the description and requirements of the test task for Python/Django Developer position applicants. Task goal The goal of this test task is to develop a simple Django admin panel which purpose is to manage the content for an online store and to have multi-role support. Domain description The following image represents the class diagram that should be considered during development of your admin panel. This is the minimal requirements for classes and fields that we are expecting from you to add. You can make your own updates and add additional functional. All images fields should be represented as links on images. You are free to use any database, which seems suitable for you and for the project. ![Class diagram](https://hb.bizmrg.com/kazanexpress/class_diagram.png) Requirements Shop admin 1. Navigate through the shops list. 2. Make a search by title. 3. Edit everything except shop id. 4. Upload image as shop pic. Product admin 1. Navigate through product list. 2. Search by id or product title. 3. Edit everything except product id. 4. First image should be displayed as main image in both list view and product view. 5. Sort products in product list by number of orders and by price. 6. Filter list of products by active flag. 7. Filter by price range. 8. Attach product to one or more categories. Category admin 1. Navigate through categories list. 2. Search by product id, title and parent category. 3. Add one or more parent categories. 4. Display all possible paths to chosen category. Management There should be at least two administrative roles for the following purposes: 1. Moderation for products. 2. Moderation of all available pages. Submission Fork this repository, prepare your solution and make a pull request when you're done. Don't forget to write docs :) Good luck!

Получите доступ более чем к 500 тестовым заданиям
Сервис можно использовать бесплатно,
без ограничений. Чтобы получить полный доступ,
вам необходимо зарегистрироваться.
где найти тестовые задания для практики
пример тестового задания junior
тестовые задания для junior python
практические задачи по python
решение тестового задания python