Декораторы
всегда применяются в обратном порядке их добавления, например, в этом случае сначала применяется декоратор patch
, а затем декоратор pytest.mark.parametrize
. Это означает, что аргументы должны быть в соответствующем порядке:
@pytest.mark.parametrize(
'date, expected',
[
(dt.datetime(year=2020, month=1, day=21), (12, 2019)),
(dt.datetime(year=2020, month=2, day=21), (01, 2020)),
]
)
@patch('dt.datetime.utcnow')
def test_billing_month_year(mock_utcnow, date, expected):
mock_utcnow.return_value = date
test = billing_month_year()
assert test == expected
Возможно, исправление также не будет работать, см. Ответы на этот вопрос , чтобы найти решения для этого.