1
Pytest功能是否類似於pytest.raises
,通過iff塊引發指定的異常,或根本不會引發?喜歡的東西:py.test斷言可能會提高,如果它提出它將__
def test_encode_err(ulist):
with pytest.maybe_raises_but_only(UnicodeEncodeError): # <== ?
assert encode_list(ulist, 'ascii') == map(lambda x:x.encode('ascii'), ulist)
這個問題在以下情況下想出了..
功能測試:
def encode_list(lst, enc):
"Encode all unicode values in ``lst`` using ``enc``."
return [(x.encode(enc) if isinstance(x, unicode) else x) for x in lst]
一些簡單的測試(以下夾具):
def test_encode_err(ulist):
with pytest.raises(UnicodeEncodeError):
assert encode_list(ulist, 'ascii')
def test_encode_u8(ulist, u8list):
assert encode_list(ulist, 'u8') == u8list
的燈具:
@pytest.fixture(
scope='module',
params=[
u'blåbærsyltetøy',
u'', # <==== problem
]
)
def ustr(request):
print 'testing with:', `request.param`
return request.param
@pytest.fixture
def u8str(ustr):
return ustr.encode('u8')
@pytest.fixture
def ulist(ustr):
return [ustr, ustr]
@pytest.fixture
def u8list(u8str):
return [u8str, u8str]
指示<== problem
僅供test_encode_err()
(而不是test_encode_u8()
)問題,並且因爲u''.encode('ascii')
發生不養UnicodeEncodeError
(不包含上面的代碼點127個字符將募集不unicode字符串)。
有沒有覆蓋該用例py.test功能?