def setUp(self): self.activech = MockActiveConfigHolder(MACROS) self.cs = MockChannelAccess() self.set_start_time_of_run_control(1) self.rcm = RunControlManager("", "", "", MockIocControl(""), self.activech, MockBlockServer(), self.cs)
class TestRunControlSequence(unittest.TestCase): def setUp(self): self.activech = MockActiveConfigHolder(MACROS) self.cs = MockChannelAccess() self.set_start_time_of_run_control(1) self.rcm = RunControlManager("", "", "", MockIocControl(""), self.activech, MockBlockServer(), self.cs) def set_start_time_of_run_control(self, start_time=2): PVS[MACROS["$(MYPVPREFIX)"] + RC_START_PV] = start_time def test_get_runcontrol_settings_empty(self): self.set_start_time_of_run_control() self.rcm.create_runcontrol_pvs(False, 0) ans = self.rcm.get_current_settings() self.assertTrue(len(ans) == 0) def test_get_runcontrol_settings_blocks(self): add_block(self.activech, quick_block_to_json("TESTBLOCK1", "PV1", "GROUP1", True)) add_block(self.activech, quick_block_to_json("TESTBLOCK2", "PV2", "GROUP2", True)) add_block(self.activech, quick_block_to_json("TESTBLOCK3", "PV3", "GROUP2", True)) add_block(self.activech, quick_block_to_json("TESTBLOCK4", "PV4", "NONE", True)) self.set_start_time_of_run_control() self.rcm.create_runcontrol_pvs(False, 0) ans = self.rcm.get_current_settings() self.assertTrue(len(ans) == 4) self.assertTrue("HIGH" in ans["TESTBLOCK1"]) self.assertTrue("LOW" in ans["TESTBLOCK1"]) self.assertTrue("ENABLE" in ans["TESTBLOCK1"]) self.assertTrue("HIGH" in ans["TESTBLOCK2"]) self.assertTrue("LOW" in ans["TESTBLOCK2"]) self.assertTrue("ENABLE" in ans["TESTBLOCK2"]) self.assertTrue("HIGH" in ans["TESTBLOCK3"]) self.assertTrue("LOW" in ans["TESTBLOCK3"]) self.assertTrue("ENABLE" in ans["TESTBLOCK3"]) self.assertTrue("HIGH" in ans["TESTBLOCK4"]) self.assertTrue("LOW" in ans["TESTBLOCK4"]) self.assertTrue("ENABLE" in ans["TESTBLOCK4"]) def test_get_runcontrol_settings_blocks_limits(self): data = {'name': "TESTBLOCK1", 'pv': "PV1", 'runcontrol': True, 'lowlimit': -5, 'highlimit': 5} add_block(self.activech, data) self.set_start_time_of_run_control() self.rcm.create_runcontrol_pvs(False, 0) ans = self.rcm.get_current_settings() self.assertTrue(len(ans) == 1) self.assertTrue(ans["TESTBLOCK1"]["HIGH"] == 5) self.assertTrue(ans["TESTBLOCK1"]["LOW"] == -5) def test_set_runcontrol_settings_limits(self): data = {'name': "TESTBLOCK1", 'pv': "PV1", 'runcontrol': True, 'lowlimit': -5, 'highlimit': 5} add_block(self.activech, data) self.set_start_time_of_run_control() self.rcm.create_runcontrol_pvs(False, 0) ans = self.rcm.get_current_settings() ans["TESTBLOCK1"]["LOW"] = 0 ans["TESTBLOCK1"]["HIGH"] = 10 ans["TESTBLOCK1"]["ENABLE"] = False self.rcm.set_runcontrol_settings(ans) ans = self.rcm.get_current_settings() self.assertEqual(ans["TESTBLOCK1"]["HIGH"], 10) self.assertEqual(ans["TESTBLOCK1"]["LOW"], 0) def test_GIVEN_non_restarting_runcontrol_WHEN_create_PVs_THAT_code_is_not_stuck_in_loop(self): self.rcm.create_runcontrol_pvs(False, 0)