예제 #1
0
 def factory(self, response=None, **kwargs):
     '''
     Build a fake SearchResult.
     '''
     response = response or response_factory()
     query = search.search_for(FakeSearch, **kwargs)
     return search.SearchResult(query, response)
예제 #2
0
    def test_no_pagination_in_query(self):
        '''Search results should be paginated even if not asked'''
        query = search.SearchQuery(FakeSearch)
        result = search.SearchResult(query, {})

        self.assertEqual(result.page, 1),
        self.assertEqual(result.page_size, search.DEFAULT_PAGE_SIZE)
        self.assertEqual(result.pages, 0)
예제 #3
0
    def test_pagination_empty(self):
        '''Search results should be paginated even if empty'''
        query = search.SearchQuery(FakeSearch, page=2, page_size=3)
        result = search.SearchResult(query, {})

        self.assertEqual(result.page, 1),
        self.assertEqual(result.page_size, 3)
        self.assertEqual(result.pages, 0)
예제 #4
0
    def test_pagination(self):
        '''Search results should be paginated'''
        kwargs = {'page': 2, 'page_size': 3}
        query = search.SearchQuery(FakeSearch, **kwargs)
        result = search.SearchResult(query, es_factory(nb=3, total=11))

        self.assertEqual(result.page, 2),
        self.assertEqual(result.page_size, 3)
        self.assertEqual(result.pages, 4)
예제 #5
0
    def test_no_failures(self):
        '''Search result should not fail on missing properties'''
        query = search.SearchQuery(FakeSearch)
        result = search.SearchResult(query, {})

        self.assertEqual(result.total, 0)
        self.assertEqual(result.max_score, 0)

        ids = result.get_ids()
        self.assertEqual(len(ids), 0)
예제 #6
0
    def test_properties(self):
        '''Search result should map some properties for easy access'''
        response = es_factory(nb=10, total=42)
        max_score = response['hits']['max_score']
        query = search.SearchQuery(FakeSearch)
        result = search.SearchResult(query, response)

        self.assertEqual(result.total, 42)
        self.assertEqual(result.max_score, max_score)

        ids = result.get_ids()
        self.assertEqual(len(ids), 10)
예제 #7
0
    def factory(self, **kwargs):
        '''
        Build a fake Elasticsearch DSL FacetedResponse
        and extract the facet form it
        '''
        data = response_factory(**kwargs)

        class TestSearch(search.SearchQuery):
            facets = {'test': self.facet}

        s = TestSearch({})
        response = search.SearchResult(s, data)
        return response.facets.test