mirror of https://github.com/django/django.git
Improved SearchVectorCombinable and SearchQueryCombinable error messages.
This commit is contained in:
parent
50cf183d21
commit
7edd06a9cf
|
@ -38,7 +38,10 @@ class SearchVectorCombinable:
|
|||
|
||||
def _combine(self, other, connector, reversed):
|
||||
if not isinstance(other, SearchVectorCombinable) or not self.config == other.config:
|
||||
raise TypeError('SearchVector can only be combined with other SearchVectors')
|
||||
raise TypeError(
|
||||
'SearchVector can only be combined with other SearchVector '
|
||||
'instances, got %s.' % type(other).__name__
|
||||
)
|
||||
if reversed:
|
||||
return CombinedSearchVector(other, connector, self, self.config)
|
||||
return CombinedSearchVector(self, connector, other, self.config)
|
||||
|
@ -105,8 +108,8 @@ class SearchQueryCombinable:
|
|||
def _combine(self, other, connector, reversed):
|
||||
if not isinstance(other, SearchQueryCombinable):
|
||||
raise TypeError(
|
||||
'SearchQuery can only be combined with other SearchQuerys, '
|
||||
'got {}.'.format(type(other))
|
||||
'SearchQuery can only be combined with other SearchQuery '
|
||||
'instances, got %s.' % type(other).__name__
|
||||
)
|
||||
if reversed:
|
||||
return CombinedSearchQuery(other, connector, self, self.config)
|
||||
|
|
|
@ -289,6 +289,14 @@ class TestCombinations(GrailTestData, PostgreSQLTestCase):
|
|||
).filter(search='bedemir')
|
||||
self.assertCountEqual(searched, [self.bedemir0, self.bedemir1, self.crowd, self.witch, self.duck])
|
||||
|
||||
def test_vector_combined_mismatch(self):
|
||||
msg = (
|
||||
'SearchVector can only be combined with other SearchVector '
|
||||
'instances, got NoneType.'
|
||||
)
|
||||
with self.assertRaisesMessage(TypeError, msg):
|
||||
Line.objects.filter(dialogue__search=None + SearchVector('character__name'))
|
||||
|
||||
def test_query_and(self):
|
||||
searched = Line.objects.annotate(
|
||||
search=SearchVector('scene__setting', 'dialogue'),
|
||||
|
@ -340,7 +348,10 @@ class TestCombinations(GrailTestData, PostgreSQLTestCase):
|
|||
self.assertCountEqual(searched, [self.verse0, self.verse1, self.verse2])
|
||||
|
||||
def test_query_combined_mismatch(self):
|
||||
msg = "SearchQuery can only be combined with other SearchQuerys, got"
|
||||
msg = (
|
||||
'SearchQuery can only be combined with other SearchQuery '
|
||||
'instances, got NoneType.'
|
||||
)
|
||||
with self.assertRaisesMessage(TypeError, msg):
|
||||
Line.objects.filter(dialogue__search=None | SearchQuery('kneecaps'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue