def perform_assertion(self, filter, expected_names): # test core selectable = qsqla.query(self.joined_select, [filter]) rows = self.db.execute(selectable) self.assertEqual([dict(r)['u_name'] for r in rows], expected_names) if filter['name'].startswith('u_'): # test ORM q = qsqla.query(User, [filter]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], expected_names)
def test_upper_bound_limit(self): query = qsqla.query(self.user.select(), [], limit=1, upper_bound_limit=2) rows = self.db.execute(query) self.assertEquals(len(list(rows)), 1) query = qsqla.query(self.user.select(), [], limit=500, upper_bound_limit=2) rows = self.db.execute(query) self.assertEquals(len(list(rows)), 2)
def test_single_filter(self): result = qsqla.query(self.joined_select, [{ "name": "l_id", "op": "eq", "val": 1 }]) self.assertEqualColumns(self.joined_select, result)
def test_with_like_location_relation(self): q = qsqla.query(User, [{ "name": "location", "op": "with", "val": "l_name__like=%uttg%" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Tom'])
def test_with_not_in_scalar_relation(self): q = qsqla.query(User, [{ "name": "location", "op": "with", "val": "l_name__not_in=Stuttgart" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha', 'Oli'])
def test_with_lt_Scalar_relation(self): q = qsqla.query(User, [{ "name": "location", "op": "with", "val": "l_id__lt=2" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha', 'Oli'])
def test_with_gte_scalar_relation(self): q = qsqla.query(User, [{ "name": "location", "op": "with", "val": "l_id__gte=2" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Tom'])
def test_with_ilike_many_relation(self): q = qsqla.query(User, [{ "name": "pets", "op": "with", "val": "p_name__ilike=%eeth%" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha'])
def test_with_not_in_many_relation(self): q = qsqla.query(User, [{ "name": "pets", "op": "with", "val": "p_name__not_in=Hooch,Sissy" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha'])
def test_with_ilike_scalar_relation(self): q = qsqla.query(User, [{ "name": "location", "op": "with", "val": "l_name__ilike=%ArlSr%" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha', 'Oli'])
def test_with_lte_many_relation(self): q = qsqla.query(User, [{ "name": "pets", "op": "with", "val": "p_id__lte=2" }]) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha', 'Oli'])
def test_with_eq_many_relation(self): q = qsqla.query(User, [{ "name": "pets", "op": "with", "val": "p_name__eq=Hooch" }], order="u_id", asc=True) q.session = self.session self.assertEqual([row.u_name for row in q.all()], ['Micha', 'Oli'])
def test_multiple_filters(self): filters = [{ "name": "l_id", "op": "eq", "val": 1 }, { "name": "u_id", "op": "eq", "val": 1 }] result = qsqla.query(self.joined_select, filters) self.assertEqualColumns(self.joined_select, result)
def test_order_with_forced_ascending(self): query = qsqla.query(User, [], order="u_id", asc=True) query.session = self.session rows = query.all() self.assertEquals([row.u_id for row in rows], [1, 2, 3])
def test_no_filters(self): sel = self.location.select() result = qsqla.query(sel, []) self.assertEqualColumns(sel, result) self.assertIsNone(result._whereclause)
def test_offset(self): query = qsqla.query(User, [], offset=2) query.session = self.session rows = query.all() self.assertEquals(len(list(rows)), 1)
def test_order_with_default_ascending(self): query = qsqla.query(self.user.select(), [], order="u_id") rows = self.db.execute(query) self.assertEquals([row.u_id for row in rows], [1, 2, 3])
def test_offset(self): query = qsqla.query(self.user.select(), [], offset=2) rows = self.db.execute(query) self.assertEquals(len(list(rows)), 1)
def test_limit(self): limit = 2 query = qsqla.query(self.user.select(), [], limit=limit) rows = self.db.execute(query) self.assertEquals(len(list(rows)), limit)
def test_order_with_forced_descending(self): query = qsqla.query(self.user.select(), [], order="u_id", asc=False) rows = self.db.execute(query) self.assertEquals([row.u_id for row in rows], [3, 2, 1])
def perform_assertion(self, filter, expected_names): selectable = qsqla.query(self.joined_select, [filter]) rows = self.db.execute(selectable) self.assertEqual([dict(r)['u_name'] for r in rows], expected_names)