Example #1
0
 def test_more_like_this(self):
     mock = MockModel()
     mock.id = 1
     msq = MockSearchQuery(backend=MockSearchBackend())
     msq.more_like_this(mock)
     
     self.assertEqual(msq.get_count(), 100)
     self.assertEqual(msq.get_results()[0], MOCK_SEARCH_RESULTS[0])
Example #2
0
 def test_run(self):
     # Stow.
     old_site = haystack.site
     test_site = SearchSite()
     test_site.register(MockModel)
     haystack.site = test_site
     
     msq = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq.get_results()), 100)
     self.assertEqual(msq.get_results()[0], MOCK_SEARCH_RESULTS[0])
     
     # Restore.
     haystack.site = old_site
Example #3
0
 def test_run(self):
     # Stow.
     old_site = haystack.site
     test_site = SearchSite()
     test_site.register(MockModel)
     haystack.site = test_site
     
     msq = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq.get_results()), 100)
     self.assertEqual(msq.get_results()[0], MOCK_SEARCH_RESULTS[0])
     
     # Restore.
     haystack.site = old_site
Example #4
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
Example #5
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()
Example #6
0
 def test_regression_site_kwarg(self):
     # Stow.
     test_site = SearchSite()
     test_site.register(MockModel)
     
     msq = MockSearchQuery(site=test_site)
     self.assertEqual(msq.backend.site.get_indexed_models(), [MockModel])
Example #7
0
 def test_more_like_this(self):
     mock = MockModel()
     mock.id = 1
     msq = MockSearchQuery(backend=MockSearchBackend())
     msq.more_like_this(mock)
     
     self.assertEqual(msq.get_count(), 100)
     self.assertEqual(msq.get_results()[0], MOCK_SEARCH_RESULTS[0])
Example #8
0
 def test_load_all(self):
     # Models with character primary keys
     sqs = SearchQuerySet(query=MockSearchQuery(backend=CharPKMockSearchBackend()))
     results = sqs.load_all().all()
     self.assertEqual(len(results._result_cache), 0)
     results._fill_cache(0, 2)
     self.assertEqual(len([result for result in results._result_cache if result is not None]), 2)
     
     # If nothing is registered, you get nothing.
     haystack.site.unregister(MockModel)
     haystack.site.unregister(CharPKMockModel)
     sqs = self.msqs.load_all()
     self.assert_(isinstance(sqs, SearchQuerySet))
     self.assertEqual(len(sqs), 0)
    def test_more_like_this(self):
        mock = MockModel()
        mock.id = 1
        msq = MockSearchQuery()
        msq.backend = MockSearchBackend('mlt')
        ui = connections['default'].get_unified_index()
        bmmsi = BasicMockModelSearchIndex()
        ui.build(indexes=[bmmsi])
        bmmsi.update()
        msq.more_like_this(mock)

        self.assertEqual(msq.get_count(), 23)
        self.assertEqual(int(msq.get_results()[0].pk), MOCK_SEARCH_RESULTS[0].pk)
Example #10
0
    def test_load_all_read_queryset(self):
        # stow
        old_site = haystack.site
        test_site = SearchSite()
        # Register a default SearchIndex first (without the SoftDeleteMangaer as the read_queryset)
        test_site.register(AFifthMockModel)
        haystack.site = test_site

        sqs = SearchQuerySet(query=MockSearchQuery(
            backend=ReadQuerySetMockSearchBackend()))
        results = sqs.load_all().all()
        results._fill_cache(0, 2)
        # The deleted result isn't returned
        self.assertEqual(
            len([
                result for result in results._result_cache
                if result is not None
            ]), 1)

        test_site.unregister(AFifthMockModel)
        # Register a SearchIndex with a read_queryset that returns deleted items
        test_site.register(AFifthMockModel, ReadQuerySetTestSearchIndex)

        sqs = SearchQuerySet(query=MockSearchQuery(
            backend=ReadQuerySetMockSearchBackend()))
        results = sqs.load_all().all()
        results._fill_cache(0, 2)
        # Both the deleted and not deleted items are returned
        self.assertEqual(
            len([
                result for result in results._result_cache
                if result is not None
            ]), 2)

        # restore
        haystack.site = old_site
Example #11
0
    def test_more_like_this(self):
        mock = MockModel()
        mock.id = 1
        msq = MockSearchQuery()
        msq.backend = MockSearchBackend('mlt')
        ui = connections['default'].get_unified_index()
        bmmsi = BasicMockModelSearchIndex()
        ui.build(indexes=[bmmsi])
        bmmsi.update()
        msq.more_like_this(mock)

        self.assertEqual(msq.get_count(), 23)
        self.assertEqual(int(msq.get_results()[0].pk), MOCK_SEARCH_RESULTS[0].pk)
Example #12
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
Example #13
0
 def test_run(self):
     msq = MockSearchQuery(backend=MockSearchBackend())
     self.assertEqual(len(msq.get_results()), 100)
     self.assertEqual(msq.get_results()[0], MOCK_SEARCH_RESULTS[0])