def stress_count(self, elements, repeats, synchronizer, synchronization): if (elements == ["_test_ct_1_1", "_test_0d_1_1"] and synchronizer == "_test_tg_1_1" and synchronization == AcqSynchType.Trigger and os.name == "nt"): self.skipTest("fails on Windows") mg_name = str(uuid.uuid1()) argin = [mg_name] + elements self.pool.CreateMeasurementGroup(argin) try: mg = Device(mg_name) mg.setSynchronizer(synchronizer, elements[0], apply=False) mg.setSynchronization(synchronization, elements[0]) for i in range(repeats): state, values = mg.count(.001) self.assertEqual(state, DevState.ON, "wrong state after measurement {}".format(i)) for channel_name, value in values.items(): msg = ("Value {} for {} is not numerical in " "measurement {}").format(value, channel_name, i) self.assertTrue(is_numerical(value), msg) finally: mg.cleanUp() if os.name != "nt": self.pool.DeleteElement(mg_name)
def test_Synchronizer(self, elements=[ "_test_ct_1_1", "_test_ct_1_2", "_test_ct_1_3", "_test_2d_1_1", "_test_mt_1_3/position" ]): mg_name = str(uuid.uuid1()) argin = [mg_name] + elements self.pool.CreateMeasurementGroup(argin) try: mg = Device(mg_name) result = mg.getSynchronizer() expected = ['software', 'software', 'software', 'software', None] self._assertMultipleResults(result, elements, expected) with self.assertRaises(Exception): mg.setSynchronizer('_test_tg_1_2', "_test_mt_1_3/position") mg.setSynchronizer('_test_tg_1_2', "_test_ct_ctrl_1", "_test_2d_ctrl_1") expected = [ '_test_tg_1_2', '_test_tg_1_2', '_test_tg_1_2', '_test_tg_1_2', None ] result = mg.getSynchronizer() self._assertMultipleResults(result, elements, expected) mg.setSynchronizer('software', "_test_ct_ctrl_1", "_test_2d_ctrl_1") result = mg.getSynchronizer() expected = ['software', 'software', 'software', 'software', None] self._assertMultipleResults(result, elements, expected) with self.assertRaises(Exception): mg.setSynchronizer('asdf', "_test_ct_ctrl_1", "_test_2d_ctrl_1") # Check ret_full_name v = TangoDeviceNameValidator() counters = [ "_test_ct_1_1", "_test_ct_1_2", "_test_ct_1_3", '_test_2d_1_1' ] full_names = [v.getNames(counter)[0] for counter in counters] mg.setSynchronizer('_test_tg_1_2', "_test_ct_ctrl_1", "_test_2d_ctrl_1") result = mg.getSynchronizer(*counters, ret_full_name=True) self._assertResult(result, full_names, '_test_tg_1_2') finally: mg.cleanUp() self.pool.DeleteElement(mg_name)
def stress_count(self, elements, repeats, synchronizer, synchronization): mg_name = str(uuid.uuid1()) argin = [mg_name] + elements self.pool.CreateMeasurementGroup(argin) try: mg = Device(mg_name) mg.setSynchronizer(synchronizer, elements[0], apply=False) mg.setSynchronization(synchronization, elements[0]) for i in range(repeats): state, values = mg.count(.001) self.assertEqual(state, DevState.ON, "wrong state after measurement {}".format(i)) for channel_name, value in values.items(): msg = ("Value {} for {} is not numerical in " "measurement {}").format(value, channel_name, i) self.assertTrue(is_numerical(value), msg) finally: mg.cleanUp() self.pool.DeleteElement(mg_name)