Тестирование декорированной функции в 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