Added regression test for #103.
This commit is contained in:
parent
39bc6d6c89
commit
ad0d67dc12
|
@ -14,5 +14,13 @@ class DocumentIndex(indexes.SearchIndex):
|
|||
name = indexes.CharField(model_attr='name')
|
||||
date = indexes.DateField(model_attr='date')
|
||||
|
||||
tags = indexes.MultiValueField()
|
||||
|
||||
def get_model(self):
|
||||
return models.Document()
|
||||
|
||||
def prepare_tags(self, obj):
|
||||
l = [['tag', 'tag-test', 'tag-test-test'],
|
||||
['tag', 'tag-test'],
|
||||
['tag']]
|
||||
return l[obj.id % 3]
|
||||
|
|
|
@ -150,7 +150,7 @@ class XapianSimpleMockIndex(indexes.SearchIndex):
|
|||
return '22.34'
|
||||
|
||||
def prepare_multi_value(self, obj):
|
||||
return ['multi1', 'multi2']
|
||||
return ['tag', 'tag-test', 'tag-test-test']
|
||||
|
||||
|
||||
class HaystackBackendTestCase(object):
|
||||
|
@ -288,13 +288,23 @@ class BackendIndexationTestCase(HaystackBackendTestCase, TestCase):
|
|||
self.assertFalse('ZXDECIMAL_NUMBER22.34' in terms)
|
||||
|
||||
def test_multivalue_field(self):
|
||||
"""
|
||||
Regression test for #103
|
||||
"""
|
||||
terms = get_terms(self.backend, '-a')
|
||||
self.assertTrue('multi1' in terms)
|
||||
self.assertTrue('multi2' in terms)
|
||||
self.assertTrue('XMULTI_VALUEmulti1' in terms)
|
||||
self.assertTrue('XMULTI_VALUEmulti2' in terms)
|
||||
self.assertTrue('ZXMULTI_VALUEmulti2' in terms)
|
||||
self.assertTrue('Zmulti2' in terms)
|
||||
self.assertTrue('tag' in terms)
|
||||
self.assertTrue('tag-test' in terms)
|
||||
self.assertTrue('tag-test-test' in terms)
|
||||
|
||||
self.assertTrue('XMULTI_VALUEtag' in terms)
|
||||
self.assertTrue('XMULTI_VALUEtag-test' in terms)
|
||||
self.assertTrue('XMULTI_VALUEtag-test-test' in terms)
|
||||
|
||||
# these and only these terms
|
||||
# 3 for the exact term (^{term}$)
|
||||
self.assertEqual(len([term for term in terms if term.startswith('XMULTI_VALUE')]), 6)
|
||||
# no stem for exact multivalues.
|
||||
self.assertEqual(len([term for term in terms if term.startswith('ZXMULTI_VALUE')]), 0)
|
||||
|
||||
def test_non_ascii_chars(self):
|
||||
terms = get_terms(self.backend, '-a')
|
||||
|
|
|
@ -193,3 +193,11 @@ class InterfaceTestCase(TestCase):
|
|||
"""
|
||||
self.assertEqual(pks(self.queryset.filter(content='corrup\xe7\xe3o')),
|
||||
pks(Document.objects.filter(summary__contains='corrup\xe7\xe3o')))
|
||||
|
||||
def test_multi_values_exact_search(self):
|
||||
"""
|
||||
Regression test for #103
|
||||
"""
|
||||
self.assertEqual(len(self.queryset.filter(tags__exact='tag')), 12)
|
||||
self.assertEqual(len(self.queryset.filter(tags__exact='tag-test')), 8)
|
||||
self.assertEqual(len(self.queryset.filter(tags__exact='tag-test-test')), 4)
|
||||
|
|
Loading…
Reference in New Issue