Фейковый репозиторий пользователей для тестов сервиса
Чтобы тестировать сервис без базы, нужен фейк репозитория. Напишите класс InMemoryUserRepo с тремя методами.
add(user)— сохраняет словарь пользователя с полямиidиemail. Если пользователь с такимidили такимemailуже есть — бросаетValueError, как это сделала бы база с уникальными индексами.get(user_id)— возвращает пользователя илиNone.find_by_email(email)— возвращает пользователя илиNone.
Возвращаемые словари должны быть копиями: изменение результата снаружи не должно менять данные внутри репозитория.
заготовка решения
class InMemoryUserRepo:
def __init__(self):
pass
def add(self, user):
raise NotImplementedError
def get(self, user_id):
raise NotImplementedError
def find_by_email(self, email):
raise NotImplementedError