def test_return_filtered_collection_if_rules_are_none():
    assert COLLECTION == return_filtered_collection(None, COLLECTION)
def test_return_filtered_collection_if_operator_invalid():
    rules = [('id', 'contains', 3)]
    with pytest.raises(KeyError) as excinfo:
        filtered_collection = return_filtered_collection(rules, COLLECTION)

    assert 'contains' in str(excinfo.value)
def test_return_filtered_collection():
    rules = [('id', '>', 3)]
    filtered_collection = return_filtered_collection(rules, COLLECTION)

    # remove numbers less than 4 from sequence: 1,3,5,2,4,6
    assert (5, 4, 6) == tuple((i['id'] for i in filtered_collection))