コード例 #1
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
 def test_iter(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     sqs = self.rsqs.all()
     results = [int(result.pk) for result in sqs]
     self.assertEqual(results, range(1, 24))
     self.assertEqual(len(backends.queries), 4)
コード例 #2
0
ファイル: admin.py プロジェクト: lachezar-zz/django-haystack
 def test_usage(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     self.assertEqual(self.client.login(username='******', password='******'), True)
     
     # First, non-search behavior.
     resp = self.client.get('/admin/core/mockmodel/')
     self.assertEqual(resp.status_code, 200)
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(resp.context['cl'].full_result_count, 23)
     
     # Then search behavior.
     resp = self.client.get('/admin/core/mockmodel/', data={'q': 'Haystack'})
     self.assertEqual(resp.status_code, 200)
     self.assertEqual(len(backends.queries), 3)
     self.assertEqual(resp.context['cl'].full_result_count, 23)
     # Ensure they aren't search results.
     self.assertEqual(isinstance(resp.context['cl'].result_list[0], MockModel), True)
     self.assertEqual(resp.context['cl'].result_list[0].id, 17)
     
     # Make sure only changelist is affected.
     resp = self.client.get('/admin/core/mockmodel/1/')
     self.assertEqual(resp.status_code, 200)
     self.assertEqual(len(backends.queries), 3)
     self.assertEqual(resp.context['original'].id, 1)
     
コード例 #3
0
 def test_fill_cache(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 10)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 20)
     self.assertEqual(len(backends.queries), 2)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     # Test to ensure we properly fill the cache, even if we get fewer
     # results back (not in the SearchSite) than the hit count indicates.
     results = self.mmsqs.all()
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 0)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [])
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 9)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8])
     self.assertEqual(len(backends.queries), 2)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 17)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19])
     self.assertEqual(len(backends.queries), 4)
     results._fill_cache(20, 30)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 27)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
     self.assertEqual(len(backends.queries), 6)
コード例 #4
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_repr(self):
     self.assertEqual(repr(self.bsqs), '[]')
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(repr(self.msqs), "[<SearchResult: core.MockModel (pk=0)>, <SearchResult: core.MockModel (pk=1)>, <SearchResult: core.MockModel (pk=2)>, <SearchResult: core.MockModel (pk=3)>, <SearchResult: core.MockModel (pk=4)>, <SearchResult: core.MockModel (pk=5)>, <SearchResult: core.MockModel (pk=6)>, <SearchResult: core.MockModel (pk=7)>, <SearchResult: core.MockModel (pk=8)>, <SearchResult: core.MockModel (pk=9)>, <SearchResult: core.MockModel (pk=10)>, <SearchResult: core.MockModel (pk=11)>, <SearchResult: core.MockModel (pk=12)>, <SearchResult: core.MockModel (pk=13)>, <SearchResult: core.MockModel (pk=14)>, <SearchResult: core.MockModel (pk=15)>, <SearchResult: core.MockModel (pk=16)>, <SearchResult: core.MockModel (pk=17)>, <SearchResult: core.MockModel (pk=18)>, '...(remaining elements truncated)...']")
     self.assertEqual(len(backends.queries), 1)
コード例 #5
0
 def test_log_query(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     # Stow.
     old_site = haystack.site
     old_debug = settings.DEBUG
     test_site = SearchSite()
     test_site.register(MockModel)
     haystack.site = test_site
     settings.DEBUG = False
     
     msq = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq.get_results()), 100)
     self.assertEqual(len(backends.queries), 0)
     
     settings.DEBUG = True
     # Redefine it to clear out the cached results.
     msq2 = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq2.get_results()), 100)
     self.assertEqual(len(backends.queries), 1)
     self.assertEqual(backends.queries[0]['query_string'], '')
     
     msq3 = MockSearchQuery(backend=MockSearchBackend())
     msq3.add_filter(SQ(foo='bar'))
     len(msq3.get_results())
     self.assertEqual(len(backends.queries), 2)
     self.assertEqual(backends.queries[0]['query_string'], '')
     self.assertEqual(backends.queries[1]['query_string'], '')
     
     # Restore.
     haystack.site = old_site
     settings.DEBUG = old_debug
コード例 #6
0
    def test_usage(self):
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)

        self.assertEqual(self.client.login(username="******", password="******"), True)

        # First, non-search behavior.
        resp = self.client.get("/admin/core/mockmodel/")
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 0)
        self.assertEqual(resp.context["cl"].full_result_count, 23)

        # Then search behavior.
        resp = self.client.get("/admin/core/mockmodel/", data={"q": "Haystack"})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 2)
        self.assertEqual(resp.context["cl"].full_result_count, 7)
        # Ensure they aren't search results.
        self.assertEqual(isinstance(resp.context["cl"].result_list[0], MockModel), True)
        self.assertEqual(resp.context["cl"].result_list[0].id, 17)

        # Make sure only changelist is affected.
        resp = self.client.get("/admin/core/mockmodel/1/")
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 2)
        self.assertEqual(resp.context["original"].id, 1)
コード例 #7
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
    def test_log_query(self):
        from django.conf import settings
        from haystack import backends

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)

        # Stow.
        old_debug = settings.DEBUG
        settings.DEBUG = False

        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 0)

        settings.DEBUG = True
        # Redefine it to clear out the cached results.
        self.sq = SearchQuery(backend=SearchBackend())
        self.sq.add_filter("name", "bar")
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 1)
        self.assertEqual(backends.queries[0]["query_string"], "name:bar")

        # And again, for good measure.
        self.sq = SearchQuery(backend=SearchBackend())
        self.sq.add_filter("name", "bar")
        self.sq.add_filter("text", "moof")
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 2)
        self.assertEqual(backends.queries[0]["query_string"], "name:bar")
        self.assertEqual(backends.queries[1]["query_string"], u"name:bar AND text:moof")

        # Restore.
        settings.DEBUG = old_debug
コード例 #8
0
    def test_log_query(self):
        from django.conf import settings
        from haystack import backends
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)

        # Stow.
        old_debug = settings.DEBUG
        settings.DEBUG = False

        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 0)

        settings.DEBUG = True
        # Redefine it to clear out the cached results.
        self.sq = SearchQuery(backend=self.sb)
        self.sq.add_filter(SQ(name='bar'))
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 1)
        self.assertEqual(backends.queries[0]['query_string'], 'name:bar')

        # And again, for good measure.
        self.sq = SearchQuery(backend=self.sb)
        self.sq.add_filter(SQ(name='baz'))
        self.sq.add_filter(SQ(text='foo'))
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 2)
        self.assertEqual(backends.queries[0]['query_string'], 'name:bar')
        self.assertEqual(backends.queries[1]['query_string'],
                         u'(name:baz AND text:foo)')

        # Restore.
        settings.DEBUG = old_debug
コード例 #9
0
 def test_log_query(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     # Stow.
     old_debug = settings.DEBUG
     settings.DEBUG = False
     
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 0)
     
     settings.DEBUG = True
     # Redefine it to clear out the cached results.
     self.sq = SearchQuery(backend=SearchBackend())
     self.sq.add_filter(SQ(name='bar'))
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 1)
     self.assertEqual(str(backends.queries[0]['query_string']), u'Xapian::Query((ZXNAMEbar OR XNAMEbar))')
     
     # And again, for good measure.
     self.sq = SearchQuery(backend=SearchBackend())
     self.sq.add_filter(SQ(name='bar'))
     self.sq.add_filter(SQ(text='moof'))
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 2)
     self.assertEqual(str(backends.queries[0]['query_string']), u'Xapian::Query((ZXNAMEbar OR XNAMEbar))')
     self.assertEqual(str(backends.queries[1]['query_string']), u'Xapian::Query(((ZXNAMEbar OR XNAMEbar) AND (ZXTEXTmoof OR XTEXTmoof)))')
     
     # Restore.
     settings.DEBUG = old_debug
コード例 #10
0
 def test_log_query(self):
     from django.conf import settings
     from haystack import backends
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     # Stow.
     old_debug = settings.DEBUG
     settings.DEBUG = False
     
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 0)
     
     settings.DEBUG = True
     # Redefine it to clear out the cached results.
     self.sq = SearchQuery(backend=self.sb)
     self.sq.add_filter(SQ(name='bar'))
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 1)
     self.assertEqual(backends.queries[0]['query_string'], 'name:bar')
     
     # And again, for good measure.
     self.sq = SearchQuery(backend=self.sb)
     self.sq.add_filter(SQ(name='baz'))
     self.sq.add_filter(SQ(text='foo'))
     len(self.sq.get_results())
     self.assertEqual(len(backends.queries), 2)
     self.assertEqual(backends.queries[0]['query_string'], 'name:bar')
     self.assertEqual(backends.queries[1]['query_string'], u'(name:baz AND text:foo)')
     
     # Restore.
     settings.DEBUG = old_debug
コード例 #11
0
    def test_log_query(self):
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)

        # Stow.
        old_debug = settings.DEBUG
        settings.DEBUG = False

        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 0)

        settings.DEBUG = True
        # Redefine it to clear out the cached results.
        self.sq = SearchQuery(backend=SearchBackend())
        self.sq.add_filter(SQ(name='bar'))
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 1)
        self.assertEqual(str(backends.queries[0]['query_string']),
                         u'Xapian::Query((ZXNAMEbar OR XNAMEbar))')

        # And again, for good measure.
        self.sq = SearchQuery(backend=SearchBackend())
        self.sq.add_filter(SQ(name='bar'))
        self.sq.add_filter(SQ(text='moof'))
        len(self.sq.get_results())
        self.assertEqual(len(backends.queries), 2)
        self.assertEqual(str(backends.queries[0]['query_string']),
                         u'Xapian::Query((ZXNAMEbar OR XNAMEbar))')
        self.assertEqual(
            str(backends.queries[1]['query_string']),
            u'Xapian::Query(((ZXNAMEbar OR XNAMEbar) AND (ZXTEXTmoof OR XTEXTmoof)))'
        )

        # Restore.
        settings.DEBUG = old_debug
コード例 #12
0
ファイル: admin.py プロジェクト: treyhunner/django-haystack
    def test_usage(self):
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)

        self.assertEqual(
            self.client.login(username='******', password='******'), True)

        # First, non-search behavior.
        resp = self.client.get('/admin/core/mockmodel/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 0)
        self.assertEqual(resp.context['cl'].full_result_count, 23)

        # Then search behavior.
        resp = self.client.get('/admin/core/mockmodel/',
                               data={'q': 'Haystack'})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 3)
        self.assertEqual(resp.context['cl'].full_result_count, 23)
        # Ensure they aren't search results.
        self.assertEqual(
            isinstance(resp.context['cl'].result_list[0], MockModel), True)
        self.assertEqual(resp.context['cl'].result_list[0].id, 17)

        # Make sure only changelist is affected.
        resp = self.client.get('/admin/core/mockmodel/1/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(len(backends.queries), 3)
        self.assertEqual(resp.context['original'].id, 1)
コード例 #13
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_log_query(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     # Stow.
     old_site = haystack.site
     old_debug = settings.DEBUG
     test_site = SearchSite()
     test_site.register(MockModel)
     haystack.site = test_site
     settings.DEBUG = False
     
     msq = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq.get_results()), 100)
     self.assertEqual(len(backends.queries), 0)
     
     settings.DEBUG = True
     # Redefine it to clear out the cached results.
     msq2 = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq2.get_results()), 100)
     self.assertEqual(len(backends.queries), 1)
     self.assertEqual(backends.queries[0]['query_string'], '')
     
     msq3 = MockSearchQuery(backend=MockSearchBackend())
     msq3.add_filter(SQ(foo='bar'))
     len(msq3.get_results())
     self.assertEqual(len(backends.queries), 2)
     self.assertEqual(backends.queries[0]['query_string'], '')
     self.assertEqual(backends.queries[1]['query_string'], '')
     
     # Restore.
     haystack.site = old_site
     settings.DEBUG = old_debug
コード例 #14
0
 def test_related_iter(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     sqs = self.rsqs.all()
     results = [int(result.pk) for result in sqs]
     self.assertEqual(results, range(1, 24))
     self.assertEqual(len(backends.queries), 4)
コード例 #15
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_fill_cache(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 10)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 20)
     self.assertEqual(len(backends.queries), 2)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     # Test to ensure we properly fill the cache, even if we get fewer
     # results back (not in the SearchSite) than the hit count indicates.
     results = self.mmsqs.all()
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 0)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [])
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 9)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8])
     self.assertEqual(len(backends.queries), 2)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 17)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19])
     self.assertEqual(len(backends.queries), 4)
     results._fill_cache(20, 30)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 27)
     self.assertEqual([result.pk for result in results._result_cache if result is not None], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
     self.assertEqual(len(backends.queries), 6)
コード例 #16
0
 def test_repr(self):
     self.assertEqual(repr(self.bsqs), '[]')
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(repr(self.msqs), "[<SearchResult: core.MockModel (pk=0)>, <SearchResult: core.MockModel (pk=1)>, <SearchResult: core.MockModel (pk=2)>, <SearchResult: core.MockModel (pk=3)>, <SearchResult: core.MockModel (pk=4)>, <SearchResult: core.MockModel (pk=5)>, <SearchResult: core.MockModel (pk=6)>, <SearchResult: core.MockModel (pk=7)>, <SearchResult: core.MockModel (pk=8)>, <SearchResult: core.MockModel (pk=9)>, <SearchResult: core.MockModel (pk=10)>, <SearchResult: core.MockModel (pk=11)>, <SearchResult: core.MockModel (pk=12)>, <SearchResult: core.MockModel (pk=13)>, <SearchResult: core.MockModel (pk=14)>, <SearchResult: core.MockModel (pk=15)>, <SearchResult: core.MockModel (pk=16)>, <SearchResult: core.MockModel (pk=17)>, <SearchResult: core.MockModel (pk=18)>, '...(remaining elements truncated)...']")
     self.assertEqual(len(backends.queries), 1)
コード例 #17
0
 def test_related_cache_is_full(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(self.rsqs._cache_is_full(), False)
     results = self.rsqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     self.assertEqual(len(backends.queries), 5)
コード例 #18
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
 def test_cache_is_full(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(self.rsqs._cache_is_full(), False)
     results = self.rsqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     self.assertEqual(len(backends.queries), 5)
コード例 #19
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
    def test_manual_iter(self):
        results = self.sqs.all()

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = [int(result.pk) for result in results._manual_iter()]
        self.assertEqual(results, range(1, 24))
        self.assertEqual(len(backends.queries), 3)
コード例 #20
0
    def test_manual_iter(self):
        results = self.sqs.all()

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = [int(result.pk) for result in results._manual_iter()]
        self.assertEqual(results, range(1, 24))
        self.assertEqual(len(backends.queries), 3)
コード例 #21
0
    def test_manual_iter(self):
        self.sb.update(self.smmi, self.sample_objs)
        results = self.sqs.auto_query('Indexed!')

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = [int(result.pk) for result in results._manual_iter()]
        self.assertEqual(sorted(results), [1, 2, 3])
        self.assertEqual(len(backends.queries), 1)
コード例 #22
0
 def test_manual_iter(self):
     self.sb.update(self.smmi, self.sample_objs)
     results = self.sqs.auto_query('Indexed!')
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = [int(result.pk) for result in results._manual_iter()]
     self.assertEqual(sorted(results), [1, 2, 3])
     self.assertEqual(len(backends.queries), 1)
コード例 #23
0
    def test_iter(self):
        self.sb.update(self.smmi, self.sample_objs)

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        sqs = self.sqs.auto_query("Indexed!")
        results = [int(result.pk) for result in sqs]
        self.assertEqual(results, [3, 2, 1])
        self.assertEqual(len(backends.queries), 1)
コード例 #24
0
 def test_cache_is_full(self):
     self.sb.update(self.smmi, self.sample_objs)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(self.sqs._cache_is_full(), False)
     results = self.sqs.auto_query('Indexed!')
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     self.assertEqual(len(backends.queries), 1)
コード例 #25
0
 def test_count(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     sqs = self.sqs.all()
     self.assertEqual(sqs.count(), 23)
     self.assertEqual(sqs.count(), 23)
     self.assertEqual(len(sqs), 23)
     self.assertEqual(sqs.count(), 23)
     # Should only execute one query to count the length of the result set.
     self.assertEqual(len(backends.queries), 1)
コード例 #26
0
    def test_cache_is_full(self):
        self.sb.update(self.smmi, self.sample_objs)

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        self.assertEqual(self.sqs._cache_is_full(), False)
        results = self.sqs.auto_query('Indexed!')
        fire_the_iterator_and_fill_cache = [result for result in results]
        self.assertEqual(results._cache_is_full(), True)
        self.assertEqual(len(backends.queries), 1)
コード例 #27
0
 def test_iter(self):
     # Dummy always returns [].
     self.assertEqual([result for result in self.bsqs.all()], [])
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     msqs = self.msqs.all()
     results = [result for result in msqs]
     self.assertEqual(results, MOCK_SEARCH_RESULTS)
     self.assertEqual(len(backends.queries), 10)
コード例 #28
0
 def test_count(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     sqs = self.sqs.all()
     self.assertEqual(sqs.count(), 23)
     self.assertEqual(sqs.count(), 23)
     self.assertEqual(len(sqs), 23)
     self.assertEqual(sqs.count(), 23)
     # Should only execute one query to count the length of the result set.
     self.assertEqual(len(backends.queries), 1)
コード例 #29
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_iter(self):
     # Dummy always returns [].
     self.assertEqual([result for result in self.bsqs.all()], [])
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     msqs = self.msqs.all()
     results = [result for result in msqs]
     self.assertEqual(results, MOCK_SEARCH_RESULTS)
     self.assertEqual(len(backends.queries), 10)
コード例 #30
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_slice(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(results[1:11], MOCK_SEARCH_RESULTS[1:11])
     self.assertEqual(len(backends.queries), 1)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(results[50], MOCK_SEARCH_RESULTS[50])
     self.assertEqual(len(backends.queries), 1)
コード例 #31
0
 def test_slice(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(results[1:11], MOCK_SEARCH_RESULTS[1:11])
     self.assertEqual(len(backends.queries), 1)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.msqs.all()
     self.assertEqual(results[50], MOCK_SEARCH_RESULTS[50])
     self.assertEqual(len(backends.queries), 1)
コード例 #32
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
 def test_fill_cache(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.rsqs.all()
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 10)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 20)
     self.assertEqual(len(backends.queries), 2)
コード例 #33
0
ファイル: solr_backend.py プロジェクト: wxtr/django-haystack
    def test_slice(self):
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = self.rsqs.all()
        self.assertEqual([int(result.pk) for result in results[1:11]], [2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
        self.assertEqual(len(backends.queries), 3)

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = self.rsqs.all()
        self.assertEqual(int(results[21].pk), 22)
        self.assertEqual(len(backends.queries), 4)
コード例 #34
0
    def test_slice(self):
        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = self.sqs.all()
        self.assertEqual([int(result.pk) for result in results[1:11]],
                         [2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
        self.assertEqual(len(backends.queries), 1)

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = self.sqs.all()
        self.assertEqual(int(results[21].pk), 22)
        self.assertEqual(len(backends.queries), 1)
コード例 #35
0
 def test_fill_cache(self):
     self.sb.update(self.smmi, self.sample_objs)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 3)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 3)
     self.assertEqual(len(backends.queries), 2)
コード例 #36
0
 def test_slice(self):
     self.sb.update(self.smmi, self.sample_objs)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(sorted([int(result.pk) for result in results[1:3]]), [1, 2])
     self.assertEqual(len(backends.queries), 1)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(int(results[0].pk), 1)
     self.assertEqual(len(backends.queries), 1)
コード例 #37
0
 def test_slice(self):
     self.sb.update(self.smmi, self.sample_objs)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(sorted([int(result.pk) for result in results[1:3]]), [1, 2])
     self.assertEqual(len(backends.queries), 1)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(int(results[0].pk), 1)
     self.assertEqual(len(backends.queries), 1)
コード例 #38
0
 def test_fill_cache(self):
     self.sb.update(self.smmi, self.sample_objs)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.auto_query('Indexed!')
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 3)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 3)
     self.assertEqual(len(backends.queries), 2)
コード例 #39
0
 def test_cache_is_full(self):
     # Dummy always has a count of 0 and an empty _result_cache, hence True.
     self.assertEqual(self.bsqs._cache_is_full(), False)
     results = self.bsqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(self.msqs._cache_is_full(), False)
     results = self.msqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     self.assertEqual(len(backends.queries), 10)
コード例 #40
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_cache_is_full(self):
     # Dummy always has a count of 0 and an empty _result_cache, hence True.
     self.assertEqual(self.bsqs._cache_is_full(), False)
     results = self.bsqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     self.assertEqual(self.msqs._cache_is_full(), False)
     results = self.msqs.all()
     fire_the_iterator_and_fill_cache = [result for result in results]
     self.assertEqual(results._cache_is_full(), True)
     self.assertEqual(len(backends.queries), 10)
コード例 #41
0
ファイル: query.py プロジェクト: dcramer/django-haystack
 def setUp(self):
     super(SearchQuerySetTestCase, self).setUp()
     self.bsqs = SearchQuerySet(query=DummySearchQuery(backend=DummySearchBackend()))
     self.msqs = SearchQuerySet(query=MockSearchQuery(backend=MockSearchBackend()))
     self.mmsqs = SearchQuerySet(query=MockSearchQuery(backend=MixedMockSearchBackend()))
     
     # Stow.
     self.old_debug = settings.DEBUG
     settings.DEBUG = True
     self.old_site = haystack.site
     test_site = SearchSite()
     test_site.register(MockModel)
     haystack.site = test_site
     
     backends.reset_search_queries()
コード例 #42
0
 def setUp(self):
     super(PickleSearchQuerySetTestCase, self).setUp()
     self.bsqs = SearchQuerySet(query=DummySearchQuery(backend=DummySearchBackend()))
     self.msqs = SearchQuerySet(query=MockSearchQuery(backend=MockSearchBackend()))
     self.mmsqs = SearchQuerySet(query=MockSearchQuery(backend=MixedMockSearchBackend()))
     
     # Stow.
     self.old_debug = settings.DEBUG
     settings.DEBUG = True
     self.old_site = haystack.site
     test_site = SearchSite()
     test_site.register(MockModel)
     test_site.register(CharPKMockModel)
     haystack.site = test_site
     
     backends.reset_search_queries()
コード例 #43
0
 def test_count(self):
     more_samples = []
     
     for i in xrange(1, 50):
         mock = MockModel()
         mock.id = i
         mock.author = 'daniel%s' % i
         mock.pub_date = date(2009, 2, 25) - timedelta(days=i)
         more_samples.append(mock)
     
     self.sb.update(self.smmi, more_samples)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.sqs.all()
     self.assertEqual(len(results), 49)
     self.assertEqual(results._cache_is_full(), False)
     self.assertEqual(len(backends.queries), 1)
コード例 #44
0
    def test_count(self):
        more_samples = []

        for i in xrange(1, 50):
            mock = MockModel()
            mock.id = i
            mock.author = 'daniel%s' % i
            mock.pub_date = date(2009, 2, 25) - timedelta(days=i)
            more_samples.append(mock)

        self.sb.update(self.smmi, more_samples)

        backends.reset_search_queries()
        self.assertEqual(len(backends.queries), 0)
        results = self.sqs.all()
        self.assertEqual(len(results), 49)
        self.assertEqual(results._cache_is_full(), False)
        self.assertEqual(len(backends.queries), 1)
コード例 #45
0
 def test_related_fill_cache(self):
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     results = self.rsqs.all()
     self.assertEqual(len(results._result_cache), 0)
     self.assertEqual(len(backends.queries), 0)
     results._fill_cache(0, 10)
     self.assertEqual(
         len([
             result for result in results._result_cache
             if result is not None
         ]), 10)
     self.assertEqual(len(backends.queries), 1)
     results._fill_cache(10, 20)
     self.assertEqual(
         len([
             result for result in results._result_cache
             if result is not None
         ]), 20)
     self.assertEqual(len(backends.queries), 2)
コード例 #46
0
 def test_manual_iter(self):
     results = self.msqs.all()
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     for offset, result in enumerate(results._manual_iter()):
         self.assertEqual(result, MOCK_SEARCH_RESULTS[offset])
     
     self.assertEqual(len(backends.queries), 10)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     # Test to ensure we properly fill the cache, even if we get fewer
     # results back (not in the SearchSite) than the hit count indicates.
     # This will hang indefinitely if broken.
     results = self.mmsqs.all()
     loaded = [result.pk for result in results._manual_iter()]
     self.assertEqual(loaded, [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
     self.assertEqual(len(backends.queries), 8)
コード例 #47
0
ファイル: query.py プロジェクト: lachezar-zz/django-haystack
 def test_manual_iter(self):
     results = self.msqs.all()
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     
     for offset, result in enumerate(results._manual_iter()):
         self.assertEqual(result, MOCK_SEARCH_RESULTS[offset])
     
     self.assertEqual(len(backends.queries), 10)
     
     backends.reset_search_queries()
     self.assertEqual(len(backends.queries), 0)
     # Test to ensure we properly fill the cache, even if we get fewer
     # results back (not in the SearchSite) than the hit count indicates.
     # This will hang indefinitely if broken.
     results = self.mmsqs.all()
     loaded = [result.pk for result in results._manual_iter()]
     self.assertEqual(loaded, [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 17, 18, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
     self.assertEqual(len(backends.queries), 8)