fix st
This commit is contained in:
@ -18,6 +18,7 @@ from rfg_adc_plotter.gui.pyqtgraph_backend import (
|
||||
resolve_initial_window_size,
|
||||
sanitize_curve_data_for_display,
|
||||
sanitize_image_for_display,
|
||||
set_image_rect_if_ready,
|
||||
resolve_visible_fft_curves,
|
||||
resolve_visible_aux_curves,
|
||||
)
|
||||
@ -290,6 +291,26 @@ class ProcessingTests(unittest.TestCase):
|
||||
|
||||
self.assertIsNone(data)
|
||||
|
||||
def test_set_image_rect_if_ready_skips_uninitialized_image(self):
|
||||
class _DummyImageItem:
|
||||
def __init__(self):
|
||||
self.calls = 0
|
||||
|
||||
def width(self):
|
||||
return None
|
||||
|
||||
def height(self):
|
||||
return None
|
||||
|
||||
def setRect(self, *_args):
|
||||
self.calls += 1
|
||||
|
||||
image_item = _DummyImageItem()
|
||||
applied = set_image_rect_if_ready(image_item, 0.0, 0.0, 10.0, 1.0)
|
||||
|
||||
self.assertFalse(applied)
|
||||
self.assertEqual(image_item.calls, 0)
|
||||
|
||||
def test_resolve_axis_bounds_rejects_nonfinite_ranges(self):
|
||||
bounds = resolve_axis_bounds(np.asarray([np.nan, np.inf], dtype=np.float64))
|
||||
|
||||
|
||||
@ -178,6 +178,41 @@ class SweepReaderTests(unittest.TestCase):
|
||||
reader.join(timeout=1.0)
|
||||
stack.close()
|
||||
|
||||
def test_parser_16_bit_x2_probe_inconclusive_logs_hint(self):
|
||||
payload = b"\x00" * (_PARSER_16_BIT_X2_PROBE_BYTES + 128)
|
||||
|
||||
stack, reader, queue, stop_event, stderr = self._start_reader(payload, parser_16_bit_x2=True)
|
||||
try:
|
||||
deadline = time.time() + 1.5
|
||||
logs = ""
|
||||
while time.time() < deadline:
|
||||
logs = stderr.getvalue()
|
||||
if "probe inconclusive" in logs:
|
||||
break
|
||||
time.sleep(0.02)
|
||||
self.assertTrue(queue.empty())
|
||||
self.assertIn("probe inconclusive", logs)
|
||||
self.assertIn("try --bin", logs)
|
||||
finally:
|
||||
stop_event.set()
|
||||
reader.join(timeout=1.0)
|
||||
stack.close()
|
||||
|
||||
def test_reader_logs_no_input_warning_when_source_is_idle(self):
|
||||
with patch.object(sweep_reader_module, "_NO_INPUT_WARN_INTERVAL_S", 0.02), patch.object(
|
||||
sweep_reader_module, "_NO_PACKET_WARN_INTERVAL_S", 0.02
|
||||
):
|
||||
stack, reader, _queue, stop_event, stderr = self._start_reader(b"", parser_16_bit_x2=False)
|
||||
try:
|
||||
time.sleep(0.12)
|
||||
logs = stderr.getvalue()
|
||||
self.assertIn("no input bytes", logs)
|
||||
self.assertIn("no sweep packets", logs)
|
||||
finally:
|
||||
stop_event.set()
|
||||
reader.join(timeout=1.0)
|
||||
stack.close()
|
||||
|
||||
def test_reader_join_does_not_raise_when_stopped(self):
|
||||
stack, reader, _queue, stop_event, _stderr = self._start_reader(b"", parser_16_bit_x2=True)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user