예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
 def test_single_filter(self):
     result = qsqla.query(self.joined_select, [{
         "name": "l_id",
         "op": "eq",
         "val": 1
     }])
     self.assertEqualColumns(self.joined_select, result)
예제 #4
0
 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'])
예제 #5
0
 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'])
예제 #6
0
 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'])
예제 #7
0
 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'])
예제 #8
0
 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'])
예제 #9
0
 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'])
예제 #10
0
 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'])
예제 #11
0
 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'])
예제 #12
0
 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'])
예제 #13
0
    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)
예제 #14
0
 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])
예제 #15
0
 def test_no_filters(self):
     sel = self.location.select()
     result = qsqla.query(sel, [])
     self.assertEqualColumns(sel, result)
     self.assertIsNone(result._whereclause)
예제 #16
0
 def test_offset(self):
     query = qsqla.query(User, [], offset=2)
     query.session = self.session
     rows = query.all()
     self.assertEquals(len(list(rows)), 1)
예제 #17
0
 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])
예제 #18
0
 def test_offset(self):
     query = qsqla.query(self.user.select(), [], offset=2)
     rows = self.db.execute(query)
     self.assertEquals(len(list(rows)), 1)
예제 #19
0
 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)
예제 #20
0
 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])
예제 #21
0
파일: test_qsqla.py 프로젝트: kopf/qsqla
 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)