如何让haystack使用搜索数据库的索引,或者更好的是,只是伪造它而不是使用索引,而是按原样使用数据库.对于那个测试用例来说这很好,可能更快.
谷歌搜索时我似乎只能找到这篇文章:http://reliablybroken.com/b/2012/12/testing-django-haystack-whoosh/
它不适用于当前版本.
Pip versions:django==1.7.5django-haystack==2.4.0解决方法 我在我们的项目中遇到过类似的用例.这是我们实施的粗略概念.请注意,如果您使用simple_backend(SB),您的一些自定义过滤器/准备方法 may not work as expected.因此,即使在测试模式下,建议使用非SB后端(例如d性搜索).
from django.core.urlresolvers import reversefrom django.test import TestCasefrom django.test.utils import overrIDe_settingsfrom haystack import connectionsfrom haystack.utils.loading import ConnectionHandler,UnifIEdindexfrom myapp.models import MyModelfrom myapp.search_indexes import MyModelindexTEST_INDEX = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine','URL': 'http://127.0.0.1:9200/','INDEX_name': 'test_index',},}@overrIDe_settings(haystack_CONNECTIONS=TEST_INDEX )class SearchVIEwTest(TestCase): def setUp(self): """ Some IDeas taken from here: https://github.com/django-haystack/django-haystack/blob/v2.6.0/test_haystack/test_vIEws.py#L40 """ connections = ConnectionHandler(TEST_INDEX ) super(SearchVIEwTest,self).setUp() self.mm = MyModel.objects.create(name='Dummy Title') # Stow. self.old_unifIEd_index = connections['default']._index self.ui = UnifIEdindex() self.mmi = MyModelindex() self.ui.build(indexes=[self.mmi]) connections['default']._index = self.ui # Update the 'index'. backend = connections['default'].get_backend() backend.clear() backend.update(self.mmi,MyModel.objects.all()) def tearDown(self): connections['default']._index = self.old_unifIEd_index super(SearchVIEwTest,self).tearDown() def test_search_results(self): response = self.clIEnt.get('/search?q=dummy') self.assertIn(self.mm.name,response)总结
以上是内存溢出为你收集整理的python – Django haystack测试全部内容,希望文章能够帮你解决python – Django haystack测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)