Код 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
  1. Нормализуйте email до проверки дубля.
  2. Fake хранит словарь email -> id.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме