Checkpoint EEPROM, firmware analysis and instrument protocol updates
This commit is contained in:
@@ -3,11 +3,17 @@ import os
|
||||
import unittest
|
||||
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
||||
from PySide6.QtWidgets import QApplication
|
||||
from PySide6.QtTest import QTest
|
||||
from PySide6.QtCore import QEventLoop, QTimer
|
||||
from pysetterminal.rawprotocol import RawProtocolWidget
|
||||
from pysetterminal.serialbus import SerialBus, SerialTab
|
||||
|
||||
|
||||
def process_events(milliseconds):
|
||||
loop = QEventLoop()
|
||||
QTimer.singleShot(milliseconds, loop.quit)
|
||||
loop.exec()
|
||||
|
||||
|
||||
class PendingProtocol:
|
||||
def __init__(self):
|
||||
self.requests = []
|
||||
@@ -39,11 +45,11 @@ class MacroTests(unittest.TestCase):
|
||||
def test_scheduled_execution_returns_and_can_be_cancelled(self):
|
||||
self.tab.execute_macro_commands([self.command])
|
||||
self.assertEqual(self.protocol.requests, [])
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertEqual(self.protocol.requests, [(0x200B, 0x35)])
|
||||
self.assertTrue(self.tab.stop_macro_btn.isEnabled())
|
||||
self.tab.stop_macro()
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertFalse(self.tab._macro_running)
|
||||
self.assertTrue(self.tab.bus_read_btn.isEnabled())
|
||||
self.assertEqual(len(self.protocol.requests), 1)
|
||||
@@ -52,20 +58,20 @@ class MacroTests(unittest.TestCase):
|
||||
self.tab.execute_macro_commands([self.command])
|
||||
self.tab.stop_macro()
|
||||
self.tab.execute_macro_commands([self.command])
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertEqual(len(self.protocol.requests), 1)
|
||||
self.protocol.callback(False, "CRC error")
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertFalse(self.tab._macro_running)
|
||||
self.assertEqual(len(self.protocol.requests), 1)
|
||||
|
||||
def test_completion_runs_next_step_and_updates_value(self):
|
||||
self.tab.execute_macro_commands([self.command])
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.protocol.callback(True, {'raw': b"ack"})
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertEqual(self.protocol.requests[-1], (0x200F, None))
|
||||
self.protocol.callback(True, {'value': 0x1234, 'raw_response': {'raw': b"reply"}})
|
||||
QTest.qWait(20)
|
||||
process_events(20)
|
||||
self.assertFalse(self.tab._macro_running)
|
||||
self.assertEqual(self.tab.bus_read_value_label.text(), "0x1234 (4660)")
|
||||
|
||||
Reference in New Issue
Block a user