Тестирование python функции всех типов - PullRequest
0 голосов
/ 11 марта 2020

Привет всем, я новичок в python, и я хочу проверить свою функцию. Но я получил ошибки.

И могу ли я использовать здесь также утверждение 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('input, expected_result',
                         [('ff0c5.ddmn6.jpg', 'ff0c5.ddmn6.jpg'),
                          ('ff0c5.ddmn6', 'ff0c5.ddmn6.jpg'),
                          ('ff0c5.jpg', 'ff0c5.jpg')]
                         )
def test_create(input, expected_result):
    assert create(input)  is expected_result

И я получаю эту ошибку. Поэтому мне нужно, чтобы все они прошли.

def test_create(input, expected_result):
>       assert create(input)  is expected_result
E       TypeError: create() missing 1 required positional argument: 'name2'

1 Ответ

0 голосов
/ 11 марта 2020

В вашем примере 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.

Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...