File tree 2 files changed +24
-0
lines changed
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -97,6 +97,10 @@ def create_fake_ssl_context(
97
97
return _FakeSSLContext (iface )
98
98
99
99
100
+ class CPythonNetwork : # pylint: disable=too-few-public-methods
101
+ """Radio object to use when using ConnectionManager in CPython."""
102
+
103
+
100
104
_global_connection_managers = {}
101
105
_global_key_by_socketpool = {}
102
106
_global_socketpools = {}
@@ -158,6 +162,12 @@ def get_radio_socketpool(radio):
158
162
if ssl_context is None :
159
163
ssl_context = create_fake_ssl_context (pool , radio )
160
164
165
+ elif class_name == "CPythonNetwork" :
166
+ import socket as pool # pylint: disable=import-outside-toplevel
167
+ import ssl # pylint: disable=import-outside-toplevel
168
+
169
+ ssl_context = ssl .create_default_context ()
170
+
161
171
else :
162
172
raise ValueError (f"Unsupported radio class: { class_name } " )
163
173
Original file line number Diff line number Diff line change @@ -53,6 +53,13 @@ def test_get_radio_socketpool_wiznet5k( # pylint: disable=unused-argument
53
53
assert socket_pool in adafruit_connection_manager ._global_socketpools .values ()
54
54
55
55
56
+ def test_get_radio_socketpool_cpython ():
57
+ radio = adafruit_connection_manager .CPythonNetwork ()
58
+ socket_pool = adafruit_connection_manager .get_radio_socketpool (radio )
59
+ assert socket_pool .__name__ == "socket"
60
+ assert socket_pool in adafruit_connection_manager ._global_socketpools .values ()
61
+
62
+
56
63
def test_get_radio_socketpool_unsupported ():
57
64
radio = mocket .MockRadio .Unsupported ()
58
65
with pytest .raises (ValueError ) as context :
@@ -98,6 +105,13 @@ def test_get_radio_ssl_context_wiznet5k( # pylint: disable=unused-argument
98
105
assert ssl_context in adafruit_connection_manager ._global_ssl_contexts .values ()
99
106
100
107
108
+ def test_get_radio_ssl_context_cpython ():
109
+ radio = adafruit_connection_manager .CPythonNetwork ()
110
+ ssl_context = adafruit_connection_manager .get_radio_ssl_context (radio )
111
+ assert isinstance (ssl_context , ssl .SSLContext )
112
+ assert ssl_context in adafruit_connection_manager ._global_ssl_contexts .values ()
113
+
114
+
101
115
def test_get_radio_ssl_context_unsupported ():
102
116
radio = mocket .MockRadio .Unsupported ()
103
117
with pytest .raises (ValueError ) as context :
You can’t perform that action at this time.
0 commit comments