assert_called_ с ошибкой с пустым сообщением об ошибке - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь изучить инструменты тестирования python и настроил то, что, как мне кажется, было бы очень простым использованием @patch().

Я сделал очень простую функцию, которая ничего не делает (но также не вызывает ошибку):

aULR = "https://example.com"

def getURL():
    with urllib.request.urlopen(aULR) as f:
        pass

Затем я исправляю urlopen и вызываю свою функцию с помощью:

@patch('urllib.request.urlopen')
def test(MockClass1):
    getURL()
    assert MockClass1.assert_called_with('test')

test()

Это терпит неудачу, как и ожидалось, с ошибкой утверждения, на которую я надеялся:

AssertionError: Expected call: urlopen('test')
Actual call: urlopen('https://example.com')

Но когда я передаю правильный URL в тесте с:

@patch('urllib.request.urlopen')
def test(MockClass1):
    getURL()
    assert MockClass1.assert_called_with('https://example.com')

test()

Я все еще получаю сообщение об ошибке, но на этот раз это бесполезная ошибка AssertionError без сообщения:

AssertionError: 

Я немного неуверен в том, как я должен это делать, поэтому я неуверен, что здесь происходит.Почему этот тест по-прежнему не проходит и я получаю пустую ошибку?

1 Ответ

0 голосов
/ 29 января 2019

Удалите начальные assert, просто напишите:

MockClass1.assert_called_with('https://example.com')

assert_called_with возвращает что-то ложное, вероятно, None, а assert None вызывает AssertionError.

...