Skip to content

Commit 0447e9f

Browse files
committed
Use new SocketPool for ESP32SPI and WIZNET5K
1 parent 0c77819 commit 0447e9f

File tree

3 files changed

+38
-11
lines changed

3 files changed

+38
-11
lines changed

adafruit_connection_manager.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ def __init__(self, socket: CircuitPythonSocketType, tls_mode: int) -> None:
5656
self.recv = socket.recv
5757
self.close = socket.close
5858
self.recv_into = socket.recv_into
59+
if hasattr(socket, "_interface"):
60+
self._interface = socket._interface
61+
if hasattr(socket, "_socket_pool"):
62+
self._socket_pool = socket._socket_pool
5963

6064
def connect(self, address: Tuple[str, int]) -> None:
6165
"""Connect wrapper to add non-standard mode parameter"""
@@ -93,7 +97,6 @@ def create_fake_ssl_context(
9397
* `Adafruit AirLift FeatherWing – ESP32 WiFi Co-Processor
9498
<https://www.adafruit.com/product/4264>`_
9599
"""
96-
socket_pool.set_interface(iface)
97100
return _FakeSSLContext(iface)
98101

99102

@@ -121,12 +124,15 @@ def get_radio_socketpool(radio):
121124
ssl_context = ssl.create_default_context()
122125

123126
elif class_name == "ESP_SPIcontrol":
124-
import adafruit_esp32spi.adafruit_esp32spi_socket as pool # pylint: disable=import-outside-toplevel
127+
import adafruit_esp32spi.adafruit_esp32spi_socketpool as socketpool # pylint: disable=import-outside-toplevel
125128

129+
pool = socketpool.SocketPool(radio)
126130
ssl_context = create_fake_ssl_context(pool, radio)
127131

128132
elif class_name == "WIZNET5K":
129-
import adafruit_wiznet5k.adafruit_wiznet5k_socket as pool # pylint: disable=import-outside-toplevel
133+
import adafruit_wiznet5k.adafruit_wiznet5k_socketpool as socketpool # pylint: disable=import-outside-toplevel
134+
135+
pool = socketpool.SocketPool(radio)
130136

131137
# Note: SSL/TLS connections are not supported by the Wiznet5k library at this time
132138
ssl_context = create_fake_ssl_context(pool, radio)

tests/conftest.py

+27-6
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,39 @@ def set_interface(iface):
1414
"""Helper to set the global internet interface"""
1515

1616

17+
class SocketPool:
18+
name = None
19+
20+
def __init__(self, *args, **kwargs):
21+
pass
22+
23+
@property
24+
def __name__(self):
25+
return self.name
26+
27+
28+
class ESP32SPI_SocketPool(SocketPool): # pylint: disable=too-few-public-methods
29+
name = "adafruit_esp32spi_socketpool"
30+
31+
32+
class WIZNET5K_SocketPool(SocketPool): # pylint: disable=too-few-public-methods
33+
name = "adafruit_wiznet5k_socketpool"
34+
35+
1736
socketpool_module = type(sys)("socketpool")
1837
socketpool_module.SocketPool = mocket.MocketPool
1938
sys.modules["socketpool"] = socketpool_module
2039

2140
esp32spi_module = type(sys)("adafruit_esp32spi")
22-
esp32spi_socket_module = type(sys)("adafruit_esp32spi_socket")
23-
esp32spi_socket_module.set_interface = set_interface
41+
esp32spi_socket_module = type(sys)("adafruit_esp32spi_socketpool")
42+
esp32spi_socket_module.SocketPool = ESP32SPI_SocketPool
2443
sys.modules["adafruit_esp32spi"] = esp32spi_module
25-
sys.modules["adafruit_esp32spi.adafruit_esp32spi_socket"] = esp32spi_socket_module
44+
sys.modules["adafruit_esp32spi.adafruit_esp32spi_socketpool"] = esp32spi_socket_module
2645

2746
wiznet5k_module = type(sys)("adafruit_wiznet5k")
28-
wiznet5k_socket_module = type(sys)("adafruit_wiznet5k_socket")
29-
wiznet5k_socket_module.set_interface = set_interface
47+
wiznet5k_socketpool_module = type(sys)("adafruit_wiznet5k_socketpool")
48+
wiznet5k_socketpool_module.SocketPool = WIZNET5K_SocketPool
3049
sys.modules["adafruit_wiznet5k"] = wiznet5k_module
31-
sys.modules["adafruit_wiznet5k.adafruit_wiznet5k_socket"] = wiznet5k_socket_module
50+
sys.modules["adafruit_wiznet5k.adafruit_wiznet5k_socketpool"] = (
51+
wiznet5k_socketpool_module
52+
)

tests/get_radio_test.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ def test_get_radio_socketpool_wifi():
2121
def test_get_radio_socketpool_esp32spi():
2222
radio = mocket.MockRadio.ESP_SPIcontrol()
2323
socket_pool = adafruit_connection_manager.get_radio_socketpool(radio)
24-
assert socket_pool.__name__ == "adafruit_esp32spi_socket"
24+
assert socket_pool.__name__ == "adafruit_esp32spi_socketpool"
2525

2626

2727
def test_get_radio_socketpool_wiznet5k():
2828
radio = mocket.MockRadio.WIZNET5K()
2929
socket_pool = adafruit_connection_manager.get_radio_socketpool(radio)
30-
assert socket_pool.__name__ == "adafruit_wiznet5k_socket"
30+
assert socket_pool.__name__ == "adafruit_wiznet5k_socketpool"
3131

3232

3333
def test_get_radio_socketpool_unsupported():

0 commit comments

Comments
 (0)