def test_async(self): def written_to(**kwargs): logger.debug('written_to-> %s' % kwargs) pv_name = get_pvname() pvs = PyPV(pv_name, 0.0, server=server, written_cb=written_to) pvc = client_pv(pv_name) caget(pvc) pvc.put(10.0) caget(pvc) def written_to_async(timestamp=None, value=None, status=None, severity=None): raise AsyncCompletion() def finished(**kwargs): logger.debug('caput completed', kwargs) pvs._written_cb = written_to_async pvc.put(12, wait=False, use_complete=True, callback=finished) time.sleep(0.05) # Indicate completion to client pvs.async_done() caget(pvc)