Full control over ordering and partial matching:
from testfixtures import sequence
compare(results, expected=sequence(partial=True, ordered=False)(
Record(id=3),
Record(id=5),
]))
Full control over ordering and partial matching:
from testfixtures import sequence
compare(results, expected=sequence(partial=True, ordered=False)(
Record(id=3),
Record(id=5),
]))
Database queries don't guarantee order? No problem:
from testfixtures import unordered
compare(query_results, expected=unordered([
User(id=1, name='Alice'),
User(id=3, name='Charlie'),
]))
Database queries don't guarantee order? No problem:
from testfixtures import unordered
compare(query_results, expected=unordered([
User(id=1, name='Alice'),
User(id=3, name='Charlie'),
]))
from testfixtures import contains
compare(event_log, expected=contains([
Event(type='user.login'),
Event(type='purchase.completed'),
]))
For logging, though, check out LogCapture: testfixtures.readthedocs.io/en/latest/lo...)
from testfixtures import contains
compare(event_log, expected=contains([
Event(type='user.login'),
Event(type='purchase.completed'),
]))
For logging, though, check out LogCapture: testfixtures.readthedocs.io/en/latest/lo...)
🎯 like() - Partial object comparisons:
from testfixtures import compare, like
compare(api.get_users(), expected = [like(User, email='alice@example.com', role='admin')])
Don't worry about attributes you don't care about!
🎯 like() - Partial object comparisons:
from testfixtures import compare, like
compare(api.get_users(), expected = [like(User, email='alice@example.com', role='admin')])
Don't worry about attributes you don't care about!