浏览代码

tests: Add unit tests for send() and throw() on generator wrapper

rdb 3 月之前
父节点
当前提交
469df73ce7
共有 1 个文件被更改,包括 25 次插入0 次删除
  1. 25 0
      tests/event/test_futures.py

+ 25 - 0
tests/event/test_futures.py

@@ -46,6 +46,31 @@ def check_result(fut, expected):
     return True
 
 
+def test_future_await_send():
+    fut = core.AsyncFuture()
+
+    i = fut.__await__()
+    assert i.send(None) == fut
+    assert i.send(None) == fut
+    assert i.send(None) == fut
+    assert i.send(None) == fut
+
+    fut.set_result(123)
+
+    with pytest.raises(StopIteration) as e:
+        i.send(None)
+
+    assert e.value.value == 123
+
+
+def test_future_await_throw():
+    fut = core.AsyncFuture()
+
+    i = fut.__await__()
+    with pytest.raises(RuntimeError):
+        i.throw(RuntimeError)
+
+
 def test_future_cancelled():
     fut = core.AsyncFuture()