def get(self): modename = self.get_argument("mode", None) if modename: apvs = dict(controller.list_by_mode(modename)) else: apvs = dict(controller.list_subscribed()) self.win(apvs)
def test_list_pvs_simple(self): def just_the_name(list_of_pairs): return map(operator.itemgetter(0), list_of_pairs) controller.subscribe('DEFAULT.PV', SubscriptionMode.Monitor(delta=0.01)).wait() controller.subscribe('FOO.PV', SubscriptionMode.Monitor(delta=0.123)).wait() controller.subscribe('BAR.PV', SubscriptionMode.Scan(period=123.1) ).wait() pvs = just_the_name(controller.list_subscribed()) self.assertItemsEqual( pvs, ['BAR.PV', 'DEFAULT.PV', 'FOO.PV']) scan_pvs = just_the_name(controller.list_by_mode(SubscriptionMode.Scan.name)) self.assertEqual( scan_pvs, ['BAR.PV']) monitor_pvs = just_the_name(controller.list_by_mode(SubscriptionMode.Monitor.name)) self.assertEqual( monitor_pvs, ['DEFAULT.PV', 'FOO.PV'])
def test_list_and_get_pvs(self): monitor_mode = SubscriptionMode.Monitor(delta=0.01) scan_mode = SubscriptionMode.Scan(period=1) now_ts = time.time() * 1e6 num_pvs = len(self.pvs) half = num_pvs // 2 monitored_pvs = self.pvs[:half] scanned_pvs = self.pvs[half:] futures = [ controller.subscribe(pv, monitor_mode) for pv in monitored_pvs ] futures += [ controller.subscribe(pv, scan_mode) for pv in scanned_pvs ] [ fut.wait() for fut in futures ] time.sleep(5) pvs_dict = dict(controller.list_archived()) for pv in self.pvs: self.assertIn(pv, pvs_dict) self.assertEqual( pvs_dict[pv].name, pv ) if pv in monitored_pvs: self.assertEqual( pvs_dict[pv].mode.mode, monitor_mode.name ) if pv in scanned_pvs: self.assertEqual( pvs_dict[pv].mode.mode,scan_mode.name ) self.assertAlmostEqual(now_ts, pvs_dict[pv].since, delta=10e6) scanpvs = dict(controller.list_by_mode(scan_mode.name)) for pv in scanpvs: self.assertEqual( scanpvs[pv].mode.mode, scan_mode.name) monitorpvs = dict(controller.list_by_mode(monitor_mode.name)) for pv in monitorpvs: self.assertEqual( monitorpvs[pv].mode.mode, monitor_mode.name)