def test_monitor_replace(self): """ Check that monitors get correctly replaced """ m = monitor.Monitor() self.assertEqual(monitor.Monitor.running, m) m2 = monitor.Monitor() self.assertEqual(monitor.Monitor.running, m2) self.assertTrue(m.loop.is_closed()) self.assertFalse(m.is_alive()) self.assertTrue(m2.is_alive()) m2.stop()
def test_monitor_replace(request): """ Check that monitors get correctly replaced """ m = monitor.Monitor() request.addfinalizer(m.stop) assert monitor.Monitor.running == m m2 = monitor.Monitor() request.addfinalizer(m2.stop) assert monitor.Monitor.running == m2 assert m.loop.is_closed() assert not m.is_alive() assert m2.is_alive() m2.stop()
def test_use_root_instrument(request, channel_instr, use_root_instrument): """ Test instrument updates """ loop = asyncio.new_event_loop() def cleanup_loop(): loop.stop() loop.close() request.addfinalizer(cleanup_loop) asyncio.set_event_loop(loop) m = monitor.Monitor( channel_instr.A.dummy_start, channel_instr.B.dummy_start, use_root_instrument=use_root_instrument, ) request.addfinalizer(m.stop) async def async_test_monitor(use_root_instrument): async with websockets.connect( f"ws://localhost:{monitor.WEBSOCKET_PORT}") as websocket: # Recieve data from monitor data = await websocket.recv() data = json.loads(data) if use_root_instrument: assert len(data["parameters"]) == 1 else: assert len(data["parameters"]) == 2 loop.run_until_complete(async_test_monitor(use_root_instrument))
def test_double_join(self): """ Check that a double join doesn't cause a hang """ m = monitor.Monitor() self.assertEqual(monitor.Monitor.running, m) m.stop() m.stop()
def test_double_join(request): """ Check that a double join doesn't cause a hang """ m = monitor.Monitor() request.addfinalizer(m.stop) assert monitor.Monitor.running == m m.stop() m.stop()
def _make_inst_and_monitor(): instr = DummyInstrument("MonitorDummy") param = Parameter("DummyParam", unit="V", get_cmd=None, set_cmd=None) param(1) monitor_parameters = tuple(instr.parameters.values())[1:] my_monitor = monitor.Monitor(*monitor_parameters, param, interval=0.1) try: yield instr, my_monitor, monitor_parameters, param finally: my_monitor.stop() instr.close()
def test_setup_teardown(self): """ Check that monitor starts up and closes correctly """ m = monitor.Monitor() self.assertTrue(m.is_alive()) self.assertTrue(m.loop.is_running()) self.assertEqual(monitor.Monitor.running, m) m.stop() self.assertFalse(m.loop.is_running()) self.assertTrue(m.loop.is_closed()) self.assertFalse(m.is_alive()) self.assertIsNone(monitor.Monitor.running)
def test_setup_teardown(request): """ Check that monitor starts up and closes correctly """ m = monitor.Monitor() request.addfinalizer(m.stop) assert m.is_alive() assert m.loop.is_running() assert monitor.Monitor.running == m m.stop() assert not m.loop.is_running() assert m.loop.is_closed() assert not m.is_alive() assert monitor.Monitor.running is None
def setUp(self): """ Create a dummy instrument for use in monitor tests, and hook it into a monitor """ self.instr = DummyInstrument("MonitorDummy") self.param = Parameter("DummyParam", unit="V", get_cmd=None, set_cmd=None) self.param(1) self.monitor_parameters = tuple(self.instr.parameters.values())[1:] self.monitor = monitor.Monitor(*self.monitor_parameters, self.param, interval=0.1)
def test_connection(self): """ Test that we can connect to a monitor instance """ m = monitor.Monitor() loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) async def async_test_connection(): websocket = await websockets.connect( f"ws://localhost:{monitor.WEBSOCKET_PORT}") await websocket.close() loop.run_until_complete(async_test_connection()) m.stop()
def test_connection(request): """ Test that we can connect to a monitor instance """ m = monitor.Monitor() request.addfinalizer(m.stop) loop = asyncio.new_event_loop() def cleanup_loop(): loop.stop() loop.close() request.addfinalizer(cleanup_loop) asyncio.set_event_loop(loop) async def async_test_connection(): async with websockets.connect(f"ws://localhost:{monitor.WEBSOCKET_PORT}"): pass loop.run_until_complete(async_test_connection()) m.stop()