Отслеживание от эффекта до его причины в большой кодовой базе Python

У меня достаточно большой проект в Django, который представляет собой достаточно большую структуру, и я использую достаточно большое количество приложений, посредников, контекстных процессоров и т. Д. Масштаб означает, что когда часть базы кода работает для запросов, где я не хочу, чтобы определить, почему это было трудно. Проверка прямого кода слишком трудоемка, так же как и однократное выполнение всего запроса в отладчике.

В этом конкретном случае моя проблема заключается в том, что я получаю «Vary: Cookie» для каждого ответа, включая некоторые, которые я хочу сильно кэшировать, и где мне не нужны никакие файлы cookie. Я подозреваю, но не знаю, как доказать, что какое-то промежуточное программное обеспечение или процессор контекста обращается к request.session даже если он не использует результат – хотя это может быть косвенный доступ, например, через request.user . И, конечно, это может быть совсем другое.

В Python, как бы вы отследили эффект («заголовок Vary был добавлен в ответ») обратно к его причине в большой базе кода?

One Solution collect form web for “Отслеживание от эффекта до его причины в большой кодовой базе Python”

Вот мысль: обезьяна заплатит класс django HttpResponse, чтобы его __setitem__ вызывал исключение, если заданный заголовок Vary . Вы можете позаботиться об этом из другого промежуточного ПО, созданного в противном случае, после его создания. Это должно дать вам хорошую трассировку из строки, задающей заголовок.

 class MonkeyPatchMiddleware(object): def __init__(self): from django.http import HttpResponse original_set_item = HttpResponse.__setitem__ def __setitem__(self, header, value): if header == "Vary": raise ValueError original_set_item(self, header, value) HttpResponse.__setitem__ = __setitem__ 

Установите промежуточное ПО как первое, что находится в вашем стеке промежуточного программного обеспечения в файле настроек django.

  • Устранение неисправностей 5 секунд Задержка в представлении формы
  • Найдите, если массив содержит 2 рядом с 2
  • Как сбросить весь процесс Python для последующей проверки отладки?
  • Отладка django / unittest?
  • Расскажите, как аргумент был получен функцией?
  • Как отладить py.test в PyCharm при включенном охвате
  • IDA Python - Почему мой код возвращает неправильное значение ESP?
  • Исправлена ​​ошибка с просмотром области видимости от отладчика Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.