我用鼻子测试异常.这是一个例子:
def testDeleteUserUserNotFound(self):
"Test exception is raised when trying to delete non-existent users"
try:
self.client.deleteUser('10000001-0000-0000-1000-100000000000')
# make nose fail here
except UserNotFoundException:
assert True
Run Code Online (Sandbox Code Playgroud)
如果引发异常,则执行assert,但如果没有引发异常,则不会执行.
我可以在上面的注释行中添加任何内容,以便如果没有异常,则会报告失败吗?
在这种情况下:
async def foo(f):
async def wrapper(*args, **kwargs):
return f(*args, **kwargs)
return wrapper
@foo
async def boo(*args, **kwargs):
pass
Run Code Online (Sandbox Code Playgroud)
是调用foo作为boo装饰器和异步调用的装饰器?
--First Edit:另外如何处理作为装饰器的coroutines调用链?
我正在尝试为以下异步编写pytest,等待方法,但我无处可去.
class UserDb(object):
async def add_user_info(self,userInfo):
return await self.post_route(route='users',json=userInfo)
async def post_route(self,route=None,json=None,params=None):
uri = self.uri + route if route else self.uri
async with self.client.post(uri,json=json,params=params) as resp:
assert resp.status == 200
return await resp.json()
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?TIA
有没有办法或技巧在Python中实现异步构造函数?我知道我们无法执行我在下面输入的操作,但我的意思是具有此功能的操作。如果不是,那么这背后不让它异步的概念是什么?提前致谢。
async def __init__(self, param):
result = await my_method(param)
async def my_method(param):
# do something async
Run Code Online (Sandbox Code Playgroud) 我是 Redis 的新手,想知道是否有办法await get通过它的键来ing 值,直到键存在。最小代码:
async def handler():
data = await self._fetch(key)
async def _fetch(key):
return self.redis_connection.get(key)
Run Code Online (Sandbox Code Playgroud)
如您所知,如果这样key不存在,那return就是None. 但是由于在我的项目中,setredis 的键值对发生在另一个应用程序中,我希望 redis_connectionget方法阻塞直到键存在。这样的期待真的有效吗?
python ×5
asynchronous ×3
python-3.x ×3
aiohttp ×1
async-await ×1
nose ×1
pytest ×1
redis ×1
testing ×1