def test_enabled(self, elements=[ "_test_ct_1_1", "_test_ct_1_2", "_test_2d_1_3", "_test_mt_1_3/position" ]): mg_name = str(uuid.uuid1()) argin = [mg_name] + elements self.pool.CreateMeasurementGroup(argin) try: mg = Device(mg_name) # Check initial state of all kind of channels, nonexistent # channels for the feature return None as result. result = mg.getEnabled(*elements) expected = [True] * len(elements) self._assertMultipleResults(result, elements, expected) # Test every possible combination of setting values # Check that changing one channel doesn't affect the other mg.setEnabled(False, *elements) result = mg.getEnabled(*elements) expected = [False] * len(elements) self._assertMultipleResults(result, elements, expected) mg.setEnabled(True, elements[0]) result = mg.getEnabled(*elements) expected = [False] * len(elements) expected[0] = True self._assertMultipleResults(result, elements, expected) mg.setEnabled(False, *elements) resutl = mg.getEnabled(*elements) self._assertResult(resutl, elements, False) # Redefine elements to ony use existing values elements = ["_test_ct_1_1", "_test_ct_1_2"] # Set values using the controller instead of channels mg.setEnabled(True, "_test_ct_ctrl_1") resutl = mg.getEnabled(*elements) self._assertResult(resutl, elements, True) # Get values by controller mg.setEnabled(False, *elements) resutl = mg.getEnabled("_test_ct_ctrl_1") self._assertResult(resutl, elements, False) # Check ret_full_name v = TangoDeviceNameValidator() full_names = [v.getNames(element)[0] for element in elements] resutl = mg.getEnabled(*full_names) self._assertResult(resutl, elements, False) mg.setEnabled(True, *full_names) resutl = mg.getEnabled(*elements, ret_full_name=True) self._assertResult(resutl, full_names, True) finally: mg.cleanUp() self.pool.DeleteElement(mg_name)