В вашем примере name2
аргумент должен всегда передаваться в функцию. Ваш тест не пройден, потому что вы передаете в функцию только один из двух аргументов.
Чтобы протестировать оба потока logi c, вам нужно будет передать для name2
переменную, равную True
( первый тест ниже) и False
(три нижних теста), это действительно зависит от того, как вы ожидаете, что ваша функция будет использоваться в вашем приложении
def create(name1, name2, ext=".jpg"):
if name2:
return "%s.%s%s" % (name1, name2, ext)
else:
return "%s%s" % (name1, ext)
@pytest.mark.parametrize(
"name1, name2, expected_result",
[
("ff0c5", "ddmn6", "ff0c5.ddmn6.jpg"),
("ff0c5", None, "ff0c5.jpg"),
("ff0c5", False, "ff0c5.jpg"),
("ff0c5", 0, "ff0c5.jpg"),
],
)
def test_create(name1, name2, expected_result):
assert create(name1, name2) == expected_result
Я не знаю, что вы подразумеваете под:
И могу ли я здесь также использовать утверждение true или false.
Надеюсь, это помогло!