Skip to content

Улучшение читаемости тестов с помощью PyHamcrest

PyHamcrest - тестовая либа, которая позволяет писать читаемые ассерты

Так вместо этого:

resp = client.post(...)

assert resp['venue'] == venue.to_json()
assert resp['items'] == [item.to_json() for item in items]

Можно писать так:

from hamcrest import assert_that, has_entries

resp = client.post(...)

assert_that(resp, has_entries(
    venue=venue.to_json(), 
    items=[item.to_json() for item in items],
))

Т.е. вместо кучи ассертов, можем написать 1 читаемый

Еще можно писать свои матчеры