为了方便测试多个接口,撰写测试用例,不用重复写创建连接池的方法,我用装饰器对创建连接池的方法进行了封装,使用时只需要在方法中创建Model对象,调用insert、update、select和delete方法即可。测试方法中更注重于业务功能,代码更精炼。
import orm import asyncio from models import User, Blog, Comment import functools def test(func): # 定义装饰器 @functools.wraps(func) async def wrapper(*args, **kwargs): # 将创建连接池的方法放在func前面执行 await orm.create_pool(loop=loop, user='www-data', password='www-data', db='awesome') return await func(*args, **kwargs) return wrapper @test # 将orm.create_pool方法抽取出来,通过装饰器的形式调用 async def testUserSave(loop): u = User(name='Test', email='test@example.com', passwd=1234567890, image='about:blank') await u.save() @test async def testUserUpdate(loop): pass @test async def testUserSelect(loop): pass @test async def testUserdelete(loop): pass if __name__ == '__main__': loop = asyncio.get_event_loop() tasks = [testUserSave(loop), testUserUpdate(loop),testUserSelect(loop),testUserdelete(loop)] loop.run_until_complete(asyncio.wait(tasks)) loop.run_forever()
Sign in to make a reply
想名好纠结
为了方便测试多个接口,撰写测试用例,不用重复写创建连接池的方法,我用装饰器对创建连接池的方法进行了封装,使用时只需要在方法中创建Model对象,调用insert、update、select和delete方法即可。测试方法中更注重于业务功能,代码更精炼。