"or"-operator tests on dbcore:parse_sorted_query

This commit is contained in:
Tom Jaspers 2015-04-16 10:04:32 +02:00
parent c98835709f
commit 13eabe25dd

View file

@ -475,6 +475,46 @@ class SortFromStringsTest(unittest.TestCase):
self.assertIsInstance(s, TestSort)
class ParseSortedQueryTest(unittest.TestCase):
def psq(self, parts):
return dbcore.parse_sorted_query(
TestModel1,
parts
)
def test_and_query(self):
q, s = self.psq([u'foo', u'bar'])
self.assertIsInstance(q, dbcore.query.AndQuery)
self.assertIsInstance(s, dbcore.query.NullSort)
self.assertEqual(len(q.subqueries), 2)
def test_or_query(self):
q, s = self.psq([u'foo', u',', u'bar'])
self.assertIsInstance(q, dbcore.query.OrQuery)
self.assertIsInstance(s, dbcore.query.NullSort)
self.assertEqual(len(q.subqueries), 2)
def test_no_space_before_comma_or_query(self):
# E.g., query `foo, bar`
q, s = self.psq([u'foo,', u'bar'])
self.assertIsInstance(q, dbcore.query.OrQuery)
self.assertIsInstance(s, dbcore.query.NullSort)
self.assertEqual(len(q.subqueries), 2)
def test_no_spaces_or_query(self):
# E.g., query `foo, bar`
q, s = self.psq([u'foo,bar'])
self.assertIsInstance(q, dbcore.query.AndQuery)
self.assertIsInstance(s, dbcore.query.NullSort)
self.assertEqual(len(q.subqueries), 1)
def test_trailing_comma_or_query(self):
q, s = self.psq([u'foo', u',', u'bar', u','])
self.assertIsInstance(q, dbcore.query.OrQuery)
self.assertIsInstance(s, dbcore.query.NullSort)
self.assertEqual(len(q.subqueries), 3)
class ResultsIteratorTest(unittest.TestCase):
def setUp(self):
self.db = TestDatabase1(':memory:')