[lang-ref] ( what_is_true_in_if_statement ) ( python )
@pytest.mark.parametrize(
'v, expected',
[
(True , True),
(False , False),
(None , False),
('' , False),
('True' , True),
('False' , True),
('0' , True),
(-2 , True),
(-1 , True),
(0 , False),
(1 , True),
(2 , True),
([] , False),
([True] , True),
([False] , True),
],
)
def test_what_is_true_in_if_statement(v, expected):
# empty and 0 is False, else True
# What values `if v:` treats as true...
is_true = False
if v:
is_true = True
assert is_true == expected
# Equivalent check using bool(v)
assert bool(v) == expected