def test_create_search_obj_filter(self, is_advance_search_capable):
"""
Test that Search objects are created with program-limiting and filled_out=True query parameters
"""
user = self.user if is_advance_search_capable else self.learner
search_obj = create_search_obj(user)
search_query_dict = search_obj.to_dict()
expected_program_query = Q(
'bool',
should=[
Q('term', **{'program.id': self.program.id})
],
minimum_should_match=1,
must=[
Q('term', **{'program.is_learner': True})
]
)
expected_filled_out_query = Q('term', **{'profile.filled_out': True})
expected_privacy_query = ~Q('term', **{'profile.account_privacy': 'private'})
assert 'query' in search_query_dict
assert 'bool' in search_query_dict['query']
assert 'filter' in search_query_dict['query']['bool']
assert len(search_query_dict['query']['bool']['filter']) == 2 if is_advance_search_capable else 3
expected_filters = [
expected_program_query.to_dict(),
expected_filled_out_query.to_dict(),
]
if not is_advance_search_capable:
expected_filters.insert(0, expected_privacy_query.to_dict())
assert search_query_dict['query']['bool']['filter'] == expected_filters
评论列表
文章目录