def test_filter_terms_regexp(self): """Test search object filtering using terms and regexp. Because their values are dicts, these take a different code path than "standard" match queries. """ view = ElasticListAPIView() view.Meta.model = MagicMock() view.Meta.model.field_has_raw.return_value = False EXPECTED = [ {"regexp": {"this.is.a.nested.field": ".+12345666666666"}}, {"terms": {"_type": ["audit.http.request", "audit.http.response", "identity.*"]}}, ] elasticfilter = ElasticFilter() request = MagicMock() # Set up the query terms for the test. request.query_params = QueryDict("", mutable=True) request.query_params.update( { view.pagination_class.page_query_param: "ignored", "terms": {"_type": ["audit.http.request", "audit.http.response", "identity.*"]}, "regexp": {"this.is.a.nested.field": ".+12345666666666"}, } ) result = elasticfilter.filter_queryset(request, Search(), view).to_dict() for item in EXPECTED: self.assertTrue(item in result["query"]["bool"]["must"])
def test_filter_queryset(self): """Test search object filtering.""" view = ElasticListAPIView() view.Meta.model = MagicMock() view.Meta.model.field_has_raw.return_value = False elasticfilter = ElasticFilter() request = MagicMock() # Set up the query terms for the test. request.query_params = QueryDict('', mutable=True) request.query_params.update( {view.pagination_class.page_query_param: 'ignored', 'name': 'value', 'name__terms': '["value1","value2"]'} ) result = \ elasticfilter.filter_queryset(request, Search(), view).to_dict() EXPECTED = [{'terms': {u'name': ['value1', 'value2']}}, {'match': {u'name': 'value'}}] for item in EXPECTED: self.assertTrue(item in result['query']['bool']['must'])
def test_filter_queryset(self): """Test search object filtering.""" view = ElasticListAPIView() view.Meta.model = MagicMock() view.Meta.model.field_has_raw.return_value = False elasticfilter = ElasticFilter() request = MagicMock() # Set up the query terms for the test. request.query_params = QueryDict('', mutable=True) request.query_params.update({ view.pagination_class.page_query_param: 'ignored', 'name': 'value', 'name__terms': '["value1","value2"]' }) result = \ elasticfilter.filter_queryset(request, Search(), view).to_dict() EXPECTED = [{ 'terms': { u'name': ['value1', 'value2'] } }, { 'match': { u'name': 'value' } }] for item in EXPECTED: self.assertTrue(item in result['query']['bool']['must'])
def test_filter_terms_regexp(self): """Test search object filtering using terms and regexp. Because their values are dicts, these take a different code path than "standard" match queries. """ view = ElasticListAPIView() view.Meta.model = MagicMock() view.Meta.model.field_has_raw.return_value = False EXPECTED = [{ 'regexp': { 'this.is.a.nested.field': '.+12345666666666' } }, { 'terms': { '_type': ["audit.http.request", "audit.http.response", "identity.*"] } }] elasticfilter = ElasticFilter() request = MagicMock() # Set up the query terms for the test. request.query_params = QueryDict('', mutable=True) request.query_params.update( { view.pagination_class.page_query_param: 'ignored', 'terms': { "_type": [ "audit.http.request", "audit.http.response", "identity.*" ], }, 'regexp': { "this.is.a.nested.field": ".+12345666666666" }, }, ) result = \ elasticfilter.filter_queryset(request, Search(), view).to_dict() for item in EXPECTED: self.assertTrue(item in result['query']['bool']['must'])
def test_filter_queryset(self): """Test search object filtering.""" view = ElasticListAPIView() view.Meta.model = MagicMock() view.Meta.model.field_has_raw.return_value = False elasticfilter = ElasticFilter() request = MagicMock() # Set up the query terms for the test. request.query_params = QueryDict("", mutable=True) request.query_params.update( {view.pagination_class.page_query_param: "ignored", "name": "value", "name__terms": '["value1","value2"]'} ) result = elasticfilter.filter_queryset(request, Search(), view).to_dict() EXPECTED = [{"terms": {u"name": ["value1", "value2"]}}, {"match": {u"name": "value"}}] for item in EXPECTED: self.assertTrue(item in result["query"]["bool"]["must"])