def METHOD_NAME(self) -> None:
    with while_not_exited(self.demo_coroutine(100)) as ctx:
        with self.assertRaises(CoroutineTestError):
            ctx.throw(CoroutineTestError)
        # This illustrates an unfortunate event -- even though the
        # coroutine never returned, the `send`-after-`close` will raise
        # a `StopIteration(None)`, which caused us to record a return
        # value of `None`.  For this reason, `while_not_exited` always
        # defaults `result` to None in its `finally`.
        ctx.send("cat")
        self.fail("the coroutine should have exited, skipping this")
    self.assertIsNone(ctx.result)