I'm learning pytest and I lint my code with pylint.
But pylint still complaints about:
W0621: Redefining name %r from outer scope (line %s)
for the following example from pytest:
# test_wallet.py
@pytest.fixture
def my_wallet():
'''Returns a Wallet instance with a zero balance'''
return Wallet()
@pytest.mark.parametrize("earned,spent,expected", [
(30, 10, 20),
(20, 2, 18),
])
def test_transactions(my_wallet, earned, spent, expected):
my_wallet.add_cash(earned)
my_wallet.spend_cash(spent)
assert my_wallet.balance == expected
Redefining name my_wallet
from outer scope.
I found workaround to add _
prefix to the fixture name: _my_wallet
.
What would be the best practice if I want to keep fixtures in same file as functions?
- Prepend all fixtures with
_
? - Disable this
pylint
check for tests? - Better suggestion?
I just disabled that rule in my test files: