Тестирование декорированной функции в Python

У меня есть функция python, которая декорирована.

    @retry_if_access_token_expired(app_id)
    def add_something(
        self,
        *,
        argument1,
        argument1 = None,
    ):

          """adding something"""

Я написал тесты для данной задачи, как показано ниже.

    @patch("other inside function to mock")
    @patch("other insdie function to mock 2")
    def test_add_something(
        self, mock_1, mock_2
    ):
        """ some logic to test the add something method """

Но я получаю эту ошибку, которая говорит, что add_somehthing принимает 1 позиционный аргумент.

TypeError: add_something() takes 1 positional argument but 3 were given

Похоже, что по крайней мере один из ваших декораторов не обрабатывает прием и передачу аргументов должным образом. Можете ли вы опубликовать код для @patch() и @retry_if_access_token_expired()?

У них должна быть общая форма отсюда: https://realpython.com/primer-on-python-decorators/#decorators-with-arguments

Вернуться на верх