def test_epicssignal_waveform(cleanup, signal_test_ioc): def update_cb(value=None, **kwargs): assert len(value) > 1 signal = EpicsSignal(signal_test_ioc.pvs['waveform'], string=True) cleanup.add(signal) signal.wait_for_connection() sub = signal.subscribe(update_cb, event_type=signal.SUB_VALUE) assert len(signal.value) > 1 signal.unsubscribe(sub)
def test_epicssignal_waveform(cleanup, signal_test_ioc): called = False def update_cb(value=None, **kwargs): nonlocal called assert len(value) > 1 called = True signal = EpicsSignal(signal_test_ioc.pvs['waveform'], string=True) cleanup.add(signal) signal.wait_for_connection() sub = signal.subscribe(update_cb, event_type=signal.SUB_VALUE) assert len(signal.get()) > 1 # force the current thread to allow other threads to run to service # subscription time.sleep(0.2) assert called signal.unsubscribe(sub)