From 16aa6cb370c44ea29f4781d9d0a2ee799ebc8c12 Mon Sep 17 00:00:00 2001 From: Jakub Stasiak Date: Mon, 11 Jan 2016 22:25:15 +0100 Subject: [PATCH] green selectors: Override DefaultSelector as well The original patch[1] missed one thing which I just discovered - there's selectors.DefaultSelector alias for the "the most efficient implementation available on the current platform"[2]. Before this patch a non-green selector class would be obtained when DefaultSelector was used. [1] 0d509ef7d2eea3ed4f8ade35d5d09918c811b56c [2] https://docs.python.org/3.5/library/selectors.html#selectors.DefaultSelector --- eventlet/green/selectors.py | 3 +++ tests/isolated/patcher_blocking_select_methods_are_deleted.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/eventlet/green/selectors.py b/eventlet/green/selectors.py index a6d2e3c..81fc862 100644 --- a/eventlet/green/selectors.py +++ b/eventlet/green/selectors.py @@ -4,6 +4,7 @@ from eventlet import patcher from eventlet.green import select __patched__ = [ + 'DefaultSelector', 'SelectSelector', ] @@ -29,3 +30,5 @@ del patcher if sys.platform != 'win32': SelectSelector._select = staticmethod(select.select) + +DefaultSelector = SelectSelector diff --git a/tests/isolated/patcher_blocking_select_methods_are_deleted.py b/tests/isolated/patcher_blocking_select_methods_are_deleted.py index 1cbb140..7a27980 100644 --- a/tests/isolated/patcher_blocking_select_methods_are_deleted.py +++ b/tests/isolated/patcher_blocking_select_methods_are_deleted.py @@ -24,4 +24,7 @@ if __name__ == '__main__': ]: assert not hasattr(selectors, name), name + default = selectors.DefaultSelector + assert default is selectors.SelectSelector, default + print('pass')