Я пишу несколько тестов для функции представления в django. Функция просмотра украшена декоратором @facebook.require_login
из библиотеки pyFacebook. Этот deciorator проверяет, вошел ли пользователь в Facebook и предоставляет ли он доступ к объекту, который представляет API Facebook, если они есть. Проверка и заполнение запроса выполняется в некотором промежуточном программном обеспечении.
Я хочу иметь возможность контролировать то, что функция просмотра видит из API Facebook, и поэтому я пытаюсь смоделировать объект API Facebook, используя библиотеку Mock. Проблема заключается в том, что промежуточное ПО facebook делает API-интерфейс facebook доступным в качестве атрибута запроса, насколько я могу судить, тестовый клиент django не предоставляет вам доступ к объекту запроса, поэтому я не могу вставить фиктивный объект api facebook в представление ,
Единственный способ проверить это - это в основном скопировать большую часть кода из тестового клиента и изменить его, чтобы сделать объект запроса доступным для тестового кода до запуска теста. У меня нет проблем с этим, но это лучший способ сделать это? Я чувствую, что должен быть более легкий путь.
Кроме того, для промежуточного программного обеспечения нормально устанавливать атрибуты по запросу, кажется, что промежуточному программному обеспечению было бы концептуально более чисто сделать дополнительные данные доступными в качестве дополнительных аргументов для декорированной функции (в этом примере, я уверен, что другие, к которым это не относится).