Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1110
This PR:
__all__
definition forbase.py
to avoid exporting newly added module-level variables.TestBase
support for Python 3.11 usingunittest.IsolatedAsyncioTestCase
.RandomChurn
usingrandom.sample
on aset
(onlylist
is supported as of Python 3.11).See original issue for implementation substantiation. Other notes:
TestBase
now inherits fromunittest.IsolatedAsyncioTestCase
for all Python versions>= 3.8
by default. However,asynctest
is still supported up to Python 3.10 andTestBase
subclasses can switch toasynctest
by setting__asynctest_compatibility_mode__
toTrue
.loop
has a class scope inasynctest
, an instance scope inunittest
, and it needs to be retrieved upon invocation (aproperty
) for Python 3.11._callSetUp
and_callTearDown
are overwritten to support the oldTestBase
behavior of allowing bothasync def
anddef
setup and teardowns, including its own. For (only) the teardown ofTestBase
, theasyncTearDown
is still explicitly needed.