Тесты носа, запутанные временным объектом

Следующая функция:

def test_1():
    assert str(squishtest.object.properties(squishtest.waitForObject(":my_button"))["text"]) == "Another button"

дает:

AssertionError: 
>>  assert str(<module 'squish' from '.../squishtest.so'>.object.properties(<module 'squish' from '.../squishtest.so'>.waitForObject(":my_button"))["text"]) == "Another button"

что не дает мне никакой информации относительно того, какой текст на самом деле содержит кнопка.

Однако это работает лучше:

def test_2():
    s = str(squishtest.object.properties(squishtest.waitForObject(":my_button"))["text"])
    assert s == "Another button"

как это дает:

AssertionError: 
    'My button' = str(<module 'squish' from '.../squishtest.so'>.object.properties(<module 'squish' from '.../squishtest.so'>.waitForObject(":startVentButton_Button"))["text"])
>>  assert 'My button' == "Another button"

В чем здесь проблема? Есть ли более хорошее решение, чем выбранное мной во втором примере?

Я запускаю тесты носа с установленным флагом -d.

1 ответ

Обычно вы бы использовали что-то вроде этого:

assert a == b, “%r != %r” % (a, b)

Но подождите, у носа есть сокращение, подобное этому: from nose.tools import eq_

Так что для вашего случая у вас будет:

eq_(str(very_obscure_obj["text"]), "Another button")
Другие вопросы по тегам