Ejemplo n.º 1
0
 async def test_delete(self):
     await execute("delete from test where grade >= 3")
     await execute("DELETE FROM test WHERE id>='000010'")
     await execute("""INSERT INTO `test` ( `id`, `age`, `birth_place`, `grade` )
                         VALUES
                             ( '000010', 20, 'someplace', 3 ),
                             ( '000011', 20, 'someplace', 3 ),
                             ( '000012', 20, 'someplace', 4 ),
                             ( '000013', 20, 'someplace', 3 ),
                             ( '000014', 20, 'someplace', 4 ),
                             ( '000015', 20, 'someplace', 3 ),
                             ( '000016', 20, 'someplace', 5 ),
                             ( '000017', 20, 'someplace', 3 )""")
     r = await Test.flex_filter(Test.grade >= 3).aggregate(num=Count('*'))
     r8 = r['num']
     rdelete5 = await Test.filter(grade=3).delete()
     r = await Test.flex_filter(Test.grade >= 3).aggregate(num=Count('*'))
     r3 = r['num']
     rdelete3 = await Test.flex_filter(Test.grade > 3).delete()
     r = await Test.flex_filter(Test.grade >= 3).aggregate(num=Count('*'))
     r0 = r['num']
     self.assertEqual(r8, 8)
     self.assertEqual(rdelete5, 5)
     self.assertEqual(r3, 3)
     self.assertEqual(rdelete3, 3)
     self.assertEqual(r0, 0)
Ejemplo n.º 2
0
 async def test_change(self):
     Test.change_db('test2')
     r1 = await Test.aggregate(num=Count('*'))
     r2 = await Test.aggregate(num=Count('*'))
     self.assertEqual(r1['num'], 1)
     self.assertEqual(r2['num'], 1)
     Test.change_db('test')
Ejemplo n.º 3
0
async def run():
    rs = await Test.filter(grade=3).aggregate(Max('age'),
                                              minage=Min('age'),
                                              avgage=Avg('age'),
                                              groupnum=Count(),
                                              group_by='birth_place')
    import pprint
    pprint.pprint(rs)
Ejemplo n.º 4
0
 async def test_group_by(self):
     rs = await select('select grade,count(age),max(age) from test group by grade')
     rso = await Test.aggregate(Count('age'), maxage=Max('age'), group_by='grade')
     for r in rs:
         group_key = r['grade']
         r.pop('grade')
         ormres = rso[group_key]
         self.assertEqual(r['count(age)'], ormres['COUNT__age'])
         self.assertEqual(r['max(age)'], ormres['maxage'])
Ejemplo n.º 5
0
 async def test_aggregate(self):
     rs = await select('select count(age),max(age) from test')
     rso = await Test.aggregate(Count('age'), maxage=Max('age'))
     self.assertEqual(rs[0]['count(age)'], rso['COUNT__age'])
     self.assertEqual(rs[0]['max(age)'], rso['maxage'])
Ejemplo n.º 6
0
 async def test_change_one_time(self):
     r0 = await Test.aggregate(num=Count('*'))
     r1 = await Test.change_db_one_time('test2').aggregate(num=Count('*'))
     r2 = await Test.aggregate(num=Count('*'))
     self.assertEqual(r1['num'], 1)
     self.assertEqual(r2['num'], r0['num'])