forked from django-haystack/django-haystack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_discovery.py
More file actions
61 lines (45 loc) · 2.17 KB
/
Copy pathtest_discovery.py
File metadata and controls
61 lines (45 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# encoding: utf-8
from __future__ import absolute_import, division, print_function, unicode_literals
from django.test import TestCase
from test_haystack.discovery.search_indexes import FooIndex
from haystack import connections
from haystack.utils.loading import UnifiedIndex
EXPECTED_INDEX_MODEL_COUNT = 6
class ManualDiscoveryTestCase(TestCase):
def test_discovery(self):
old_ui = connections["default"].get_unified_index()
connections["default"]._index = UnifiedIndex()
ui = connections["default"].get_unified_index()
self.assertEqual(len(ui.get_indexed_models()), EXPECTED_INDEX_MODEL_COUNT)
ui.build(indexes=[FooIndex()])
self.assertListEqual(
["discovery.foo"], [str(i._meta) for i in ui.get_indexed_models()]
)
ui.build(indexes=[])
self.assertListEqual([], ui.get_indexed_models())
connections["default"]._index = old_ui
class AutomaticDiscoveryTestCase(TestCase):
def test_discovery(self):
old_ui = connections["default"].get_unified_index()
connections["default"]._index = UnifiedIndex()
ui = connections["default"].get_unified_index()
self.assertEqual(len(ui.get_indexed_models()), EXPECTED_INDEX_MODEL_COUNT)
# Test exclusions.
ui.excluded_indexes = ["test_haystack.discovery.search_indexes.BarIndex"]
ui.build()
indexed_model_names = [str(i._meta) for i in ui.get_indexed_models()]
self.assertIn("multipleindex.foo", indexed_model_names)
self.assertIn("multipleindex.bar", indexed_model_names)
self.assertNotIn("discovery.bar", indexed_model_names)
ui.excluded_indexes = [
"test_haystack.discovery.search_indexes.BarIndex",
"test_haystack.discovery.search_indexes.FooIndex",
]
ui.build()
indexed_model_names = [str(i._meta) for i in ui.get_indexed_models()]
self.assertIn("multipleindex.foo", indexed_model_names)
self.assertIn("multipleindex.bar", indexed_model_names)
self.assertListEqual(
[], [i for i in indexed_model_names if i.startswith("discovery")]
)
connections["default"]._index = old_ui