1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
From: Edward Betts <edward@4angle.com>
Date: Thu, 25 Dec 2025 14:44:53 +0000
Subject: Tests use explicit event loop Python 3.14
---
tests/test_et.py | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/tests/test_et.py b/tests/test_et.py
index b5496a1..582b6b5 100644
--- a/tests/test_et.py
+++ b/tests/test_et.py
@@ -10,6 +10,15 @@ from goodwe.modbus import ILLEGAL_DATA_ADDRESS
from goodwe.protocol import ModbusRtuReadCommand, ProtocolCommand, ProtocolResponse
+def _get_or_create_event_loop():
+ try:
+ return asyncio.get_event_loop()
+ except RuntimeError:
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
+ return loop
+
+
class EtMock(TestCase, ET):
def __init__(self, methodName='runTest'):
@@ -49,7 +58,7 @@ class EtMock(TestCase, ET):
@classmethod
def setUpClass(cls):
- cls.loop = asyncio.get_event_loop()
+ cls.loop = _get_or_create_event_loop()
class GW10K_ET_Test(EtMock):
@@ -324,7 +333,7 @@ class GW10K_ET_fw819_Test(EtMock):
self.mock_response(self._READ_DEVICE_VERSION_INFO, 'GW10K-ET_device_info_fw819.hex')
self.mock_response(ModbusRtuReadCommand(0xf7, 47547, 6), 'eco_mode_v2.hex')
self.mock_response(ModbusRtuReadCommand(0xf7, 47589, 6), ILLEGAL_DATA_ADDRESS)
- asyncio.get_event_loop().run_until_complete(self.read_device_info())
+ _get_or_create_event_loop().run_until_complete(self.read_device_info())
def test_GW10K_ET_fw819_device_info(self):
self.assertEqual('0GW10K-ET', self.model_name)
@@ -365,7 +374,7 @@ class GW10K_ET_fw1023_Test(EtMock):
EtMock.__init__(self, methodName)
self.mock_response(self._READ_DEVICE_VERSION_INFO, 'GW10K-ET_device_info_fw1023.hex')
self.mock_response(self._READ_RUNNING_DATA, 'GW10K-ET_running_data_fw1023.hex')
- asyncio.get_event_loop().run_until_complete(self.read_device_info())
+ _get_or_create_event_loop().run_until_complete(self.read_device_info())
def test_GW10K_ET_fw1023_device_info(self):
self.assertEqual('GW10K-ET', self.model_name)
|