|
| 1 | +# -*- coding: utf-8 -*- |
1 | 2 | import datetime
|
2 | 3 | import logging
|
3 | 4 | import pysolr
|
@@ -829,6 +830,53 @@ def test_related_cache_is_full(self):
|
829 | 830 | fire_the_iterator_and_fill_cache = [result for result in results]
|
830 | 831 | self.assertEqual(results._cache_is_full(), True)
|
831 | 832 | self.assertEqual(len(backends.queries), 5)
|
| 833 | + |
| 834 | + def test_quotes_regression(self): |
| 835 | + sqs = self.sqs.auto_query("44°48'40''N 20°28'32''E") |
| 836 | + # Should not have empty terms. |
| 837 | + self.assertEqual(sqs.query.build_query(), u"(44\ufffd\ufffd48'40''N AND 20\ufffd\ufffd28'32''E)") |
| 838 | + # Should not cause Solr to 500. |
| 839 | + self.assertEqual(sqs.count(), 0) |
| 840 | + |
| 841 | + sqs = self.sqs.auto_query('blazing') |
| 842 | + self.assertEqual(sqs.query.build_query(), u'blazing') |
| 843 | + self.assertEqual(sqs.count(), 0) |
| 844 | + sqs = self.sqs.auto_query('blazing saddles') |
| 845 | + self.assertEqual(sqs.query.build_query(), u'(blazing AND saddles)') |
| 846 | + self.assertEqual(sqs.count(), 0) |
| 847 | + sqs = self.sqs.auto_query('"blazing saddles') |
| 848 | + self.assertEqual(sqs.query.build_query(), u'(\\"blazing AND saddles)') |
| 849 | + self.assertEqual(sqs.count(), 0) |
| 850 | + sqs = self.sqs.auto_query('"blazing saddles"') |
| 851 | + self.assertEqual(sqs.query.build_query(), u'"blazing saddles"') |
| 852 | + self.assertEqual(sqs.count(), 0) |
| 853 | + sqs = self.sqs.auto_query('mel "blazing saddles"') |
| 854 | + self.assertEqual(sqs.query.build_query(), u'("blazing saddles" AND mel)') |
| 855 | + self.assertEqual(sqs.count(), 0) |
| 856 | + sqs = self.sqs.auto_query('mel "blazing \'saddles"') |
| 857 | + self.assertEqual(sqs.query.build_query(), u'("blazing \'saddles" AND mel)') |
| 858 | + self.assertEqual(sqs.count(), 0) |
| 859 | + sqs = self.sqs.auto_query('mel "blazing \'\'saddles"') |
| 860 | + self.assertEqual(sqs.query.build_query(), u'("blazing \'\'saddles" AND mel)') |
| 861 | + self.assertEqual(sqs.count(), 0) |
| 862 | + sqs = self.sqs.auto_query('mel "blazing \'\'saddles"\'') |
| 863 | + self.assertEqual(sqs.query.build_query(), u'("blazing \'\'saddles" AND mel AND \')') |
| 864 | + self.assertEqual(sqs.count(), 0) |
| 865 | + sqs = self.sqs.auto_query('mel "blazing \'\'saddles"\'"') |
| 866 | + self.assertEqual(sqs.query.build_query(), u'("blazing \'\'saddles" AND mel AND \'\\")') |
| 867 | + self.assertEqual(sqs.count(), 0) |
| 868 | + sqs = self.sqs.auto_query('"blazing saddles" mel') |
| 869 | + self.assertEqual(sqs.query.build_query(), u'("blazing saddles" AND mel)') |
| 870 | + self.assertEqual(sqs.count(), 0) |
| 871 | + sqs = self.sqs.auto_query('"blazing saddles" mel brooks') |
| 872 | + self.assertEqual(sqs.query.build_query(), u'("blazing saddles" AND mel AND brooks)') |
| 873 | + self.assertEqual(sqs.count(), 0) |
| 874 | + sqs = self.sqs.auto_query('mel "blazing saddles" brooks') |
| 875 | + self.assertEqual(sqs.query.build_query(), u'("blazing saddles" AND mel AND brooks)') |
| 876 | + self.assertEqual(sqs.count(), 0) |
| 877 | + sqs = self.sqs.auto_query('mel "blazing saddles" "brooks') |
| 878 | + self.assertEqual(sqs.query.build_query(), u'("blazing saddles" AND mel AND \\"brooks)') |
| 879 | + self.assertEqual(sqs.count(), 0) |
832 | 880 |
|
833 | 881 |
|
834 | 882 | class LiveSolrMoreLikeThisTestCase(TestCase):
|
|
0 commit comments