def __init__( self, request, separate_replies=False, separate_wildcard_uri_keys=True, _replies_limit=200, ): self.es = request.es self.separate_replies = separate_replies self._replies_limit = _replies_limit # Order matters! The KeyValueMatcher must be run last, # after all other modifiers have popped off the params. self._modifiers = [ query.Sorter(), query.Limiter(), query.DeletedFilter(), query.AuthFilter(request), query.GroupFilter(), query.GroupAuthFilter(request), query.UserFilter(), query.HiddenFilter(request), query.AnyMatcher(), query.TagsMatcher(), query.UriCombinedWildcardFilter( request, separate_keys=separate_wildcard_uri_keys ), query.KeyValueMatcher(), ] self._aggregations = []
def test_visibility_of_moderated_and_nipsaed_annotations( self, index, Annotation, pyramid_request, search, user, AnnotationSearchIndexPresenter, nipsa, hidden, should_show_annotation, ): pyramid_request.user = user search.append_modifier(query.HiddenFilter(pyramid_request)) presenter = AnnotationSearchIndexPresenter.return_value presenter.asdict.return_value = { "id": "ann1", "hidden": hidden, "nipsa": nipsa } Annotation(id="ann1") presenter.asdict.return_value = { "id": "ann2", "hidden": False, "nipsa": False } Annotation(id="ann2", userid=user.userid) expected_ids = ["ann2"] if should_show_annotation: expected_ids.append("ann1") result = search.run({}) assert sorted(result.annotation_ids) == sorted(expected_ids)
def test_shows_banned_users_annotations_to_banned_user( self, pyramid_request, search, banned_user, user, Annotation): pyramid_request.user = banned_user search.append_modifier(query.HiddenFilter(pyramid_request)) expected_ids = [Annotation(userid=banned_user.userid).id] result = search.run(webob.multidict.MultiDict({})) assert sorted(result.annotation_ids) == sorted(expected_ids)
def test_shows_banned_users_annotations_in_groups_they_created( self, pyramid_request, search, banned_user, user, Annotation, group_service ): pyramid_request.user = user group_service.groupids_created_by.return_value = ["created_by_banneduser"] search.append_modifier(query.HiddenFilter(pyramid_request)) expected_ids = [ Annotation(groupid="created_by_banneduser", userid=banned_user.userid).id ] result = search.run(webob.multidict.MultiDict({})) assert sorted(result.annotation_ids) == sorted(expected_ids)
def test_visibility_of_moderated_and_nipsaed_annotations( self, index, Annotation, pyramid_request, search, user, AnnotationSearchIndexPresenter, nipsa, hidden, should_show_annotation ): pyramid_request.user = user search.append_modifier(query.HiddenFilter(pyramid_request)) presenter = AnnotationSearchIndexPresenter.return_value presenter.asdict.return_value = {'id': 'ann1', 'hidden': hidden, 'nipsa': nipsa} Annotation(id='ann1') presenter.asdict.return_value = {'id': 'ann2', 'hidden': False, 'nipsa': False} Annotation(id='ann2', userid=user.userid) expected_ids = ['ann2'] if should_show_annotation: expected_ids.append('ann1') result = search.run({}) assert sorted(result.annotation_ids) == sorted(expected_ids)
def __init__(self, request, separate_replies=False, stats=None, _replies_limit=200): self.es = request.es self.separate_replies = separate_replies self.stats = stats self._replies_limit = _replies_limit # Order matters! The KeyValueMatcher must be run last, # after all other modifiers have popped off the params. if request.feature('replace_nipsa_with_hidden_filter'): self._modifiers = [ query.Sorter(), query.Limiter(), query.DeletedFilter(), query.AuthFilter(request), query.GroupFilter(), query.GroupAuthFilter(request), query.UserFilter(), query.HiddenFilter(request), query.AnyMatcher(), query.TagsMatcher(), query.KeyValueMatcher() ] else: self._modifiers = [ query.Sorter(), query.Limiter(), query.DeletedFilter(), query.AuthFilter(request), query.GroupFilter(), query.GroupAuthFilter(request), query.UserFilter(), query.NipsaFilter(request), query.AnyMatcher(), query.TagsMatcher(), query.KeyValueMatcher() ] self._aggregations = []
def search(self, search, pyramid_request): # This filter is the code under test search.append_modifier(query.HiddenFilter(pyramid_request)) return search