Код Senior Тестирование и pytest обновлено
Фейковый репозиторий вместо БД
Условие
Сервис регистрации: register(repo, email) должен нормализовать email (обрезать пробелы, нижний регистр), вернуть "invalid" если нет @, "exists" если такой email уже есть, иначе сохранить и вернуть новый id. Реализуйте FakeRepo (в памяти, методы exists(email), add(email) -> id, id растут с 1) и register. Проверка run(emails) регистрирует по очереди и возвращает результаты.
Примеры
run(["a@b.ru", "c@d.ru"]) // [1, 2]
run(["a@b.ru", " A@B.RU "]) // [1, "exists"]
run(["nope"]) // ["invalid"]
Как подойти
Подсказки: 2
- Нормализуйте email до проверки дубля.
- Fake хранит словарь email -> id.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Тестируемая функция со временем
Следующий вопрос
Мини-раннер параметризованных тестов