I think by adopting the testing approach taken by AsyncExitStack and ExitStack for contextlib.contextmanager it should be possible to prevent contextlib.asynccontextmanager from drifting in implementation
class TestAsyncExitStack(TestBaseExitStack, unittest.TestCase):
class SyncAsyncExitStack(AsyncExitStack):