Skip to content

Commit 02e5a52

Browse files
committed
Unittest cleanup and enhancement
1 parent 9ae1138 commit 02e5a52

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

tests/mockstuff.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,13 @@ class TestDevSubscription(BicepsSubscription):
7676
expires = 60
7777
notify_ref = 'a ref string'
7878

79-
def __init__(self, filter_: list[str], soap_client_pool: SoapClientPool, msg_factory: MessageFactory):
79+
def __init__(
80+
self,
81+
filter_: list[str],
82+
soap_client_pool: SoapClientPool,
83+
msg_factory: MessageFactory,
84+
test_nbr_reports: int = 1,
85+
):
8086
notify_ref_node = etree.Element(ns_hlp.WSE.tag('References'))
8187
ident_node = etree.SubElement(notify_ref_node, ns_hlp.WSE.tag('Identifier'))
8288
ident_node.text = self.notify_ref
@@ -100,6 +106,8 @@ def __init__(self, filter_: list[str], soap_client_pool: SoapClientPool, msg_fac
100106
log_prefix='test',
101107
)
102108
self.reports = []
109+
self._test_nbr_reports = test_nbr_reports
110+
self.reports_event = threading.Event()
103111

104112
def send_notification_report(self, body_node: LxmlElement, action: str):
105113
"""Send notification to subscriber."""
@@ -110,6 +118,8 @@ def send_notification_report(self, body_node: LxmlElement, action: str):
110118
)
111119
message = self._mk_notification_message(info_block, body_node)
112120
self.reports.append(message)
121+
if len(self.reports) >= self._test_nbr_reports:
122+
self.reports_event.set()
113123

114124
async def async_send_notification_report(self, body_node: LxmlElement, action: str):
115125
"""Send notification to subscriber."""
@@ -120,6 +130,8 @@ async def async_send_notification_report(self, body_node: LxmlElement, action: s
120130
)
121131
message = self._mk_notification_message(info_block, body_node)
122132
self.reports.append(message)
133+
if len(self.reports) >= self._test_nbr_reports:
134+
self.reports_event.set()
123135

124136
async def async_send_notification_end_message(
125137
self,
@@ -135,7 +147,7 @@ async def async_send_notification_end_message(
135147
class SomeDevice(SdcProvider):
136148
"""A device used for unit tests. Some values are predefined."""
137149

138-
def __init__( # noqa: PLR0913
150+
def __init__( # noqa: PLR0913, PLR0917
139151
self,
140152
wsdiscovery: WsDiscoveryProtocol,
141153
mdib_xml_data: bytes,
@@ -189,7 +201,7 @@ def __init__( # noqa: PLR0913
189201
)
190202

191203
@classmethod
192-
def from_mdib_file( # noqa: PLR0913
204+
def from_mdib_file( # noqa: PLR0913, PLR0917
193205
cls,
194206
wsdiscovery: WsDiscoveryProtocol,
195207
epr: str | uuid.UUID | None,

tests/test_device_subscriptions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import pathlib
44
import re
5-
import time
65
import unittest
76
from decimal import Decimal
87

@@ -90,6 +89,7 @@ def test_waveform_subscription(self):
9089
[self.sdc_device.mdib.sdc_definitions.Actions.Waveform],
9190
self.sdc_device._soap_client_pool,
9291
self.sdc_device.msg_factory,
92+
test_nbr_reports=21,
9393
)
9494
mgr = self.sdc_device.hosted_services.state_event_service.hosting_service.subscriptions_manager
9595

@@ -105,7 +105,7 @@ def test_waveform_subscription(self):
105105
waveform_provider.register_waveform_generator(HANDLES[1], st)
106106
waveform_provider.register_waveform_generator(HANDLES[2], si)
107107

108-
time.sleep(3)
108+
self.assertTrue(test_subscription.reports_event.wait(timeout=10))
109109
self.assertGreater(len(test_subscription.reports), 20)
110110
report = test_subscription.reports[-1]
111111
self._verify_proper_namespaces(report)

tests/test_device_waveform.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,12 @@ def test_waveform_subscription(self):
9494
[self.sdc_device.mdib.sdc_definitions.Actions.Waveform],
9595
self._soap_client_pool,
9696
self.sdc_device.msg_factory,
97+
test_nbr_reports=11,
9798
)
9899
mgr = self.sdc_device.hosted_services.state_event_service.hosting_service.subscriptions_manager
99100
mgr._subscriptions.add_object(test_subscription)
100101

101-
time.sleep(3)
102+
self.assertTrue(test_subscription.reports_event.wait(timeout=10))
102103
self.assertGreater(len(test_subscription.reports), 10)
103104

104105
def _mk_device(self):

0 commit comments

Comments
 (0)