Skip to content

Commit

Permalink
Merge pull request #647 from ISISComputingGroup/Ticket8573_muon_tpar
Browse files Browse the repository at this point in the history
Improve test coverage
  • Loading branch information
rerpha authored Dec 17, 2024
2 parents 9b4e9a7 + 87670f7 commit df7cb68
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions tests/muontpar.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@

test_config_path = os.path.abspath(
os.path.join(os.path.dirname(os.path.dirname(__file__)), "test_data", "muontpar")
)
).replace("\\", "/")


IOCS = [
{
"name": DEVICE_PREFIX,
"directory": get_default_ioc_dir("MUONTPAR"),
"pv_for_existence": "FILE_DIR",
"macros": {"EDITOR_TPAR_FILE_DIR": test_config_path.replace("\\", "\\\\") + "\\"},
"macros": {"EDITOR_TPAR_FILE_DIR": test_config_path},
},
{
# INSTETC is required to control manager mode.
Expand Down Expand Up @@ -59,21 +59,46 @@ def setUp(self):
os.remove(os.path.join(test_config_path, TEST_TPAR_FILENAME))

def test_tpar_dir_populates_file_dir_pv(self):
self.ca.assert_that_pv_is("FILE_DIR", test_config_path + "\\")
self.ca.assert_that_pv_is("FILE_DIR", test_config_path)

def test_tpar_file_contents_match_disk_contents_on_read(self):
file_name = "tpar.tpar"
self.ca.set_pv_value("FILE_NAME:SP", file_name)
self.ca.assert_that_pv_is("FILE_NAME", file_name)
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "No")
with open(os.path.join(test_config_path, file_name), "r") as tpar_file:
self.ca.assert_that_pv_is("LINES_ARRAY:SP", tpar_file.read())

def test_tpar_missing_file_gives_warning(self):
file_name = "tpar.tpar"
self.ca.set_pv_value("FILE_NAME:SP", file_name)
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "No")
self.ca.set_pv_value("FILE_NAME:SP", "missing_file.txt")
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "Yes")

def test_tpar_editor_writes_tpar_content(self):
file_name = TEST_TPAR_FILENAME
self.ca.set_pv_value("FILE_NAME:SP", file_name)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "No")
self.ca.set_pv_value("FILE_NAME:SP", file_name, wait=True)
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "Yes")
self.ca.set_pv_value("LINES_ARRAY:SP", TEST_TPAR)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "Yes")
with ManagerMode(ChannelAccess()):
self.ca.set_pv_value("SAVE_FILE", 1, wait=True)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "No")
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "No")
with open(os.path.join(test_config_path, file_name), "r") as tpar_file:
self.assertEqual(TEST_TPAR, tpar_file.read())

def test_tpar_editor_reset(self):
file_name = "tpar.tpar"
self.ca.set_pv_value("FILE_NAME:SP", file_name, wait=True)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "No")
self.ca.assert_that_pv_is("NEW_FILE_WARNING", "No")
self.ca.set_pv_value("LINES_ARRAY:SP", TEST_TPAR)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "Yes")
self.ca.set_pv_value("RESET", 1)
self.ca.assert_that_pv_is("UNSAVED_CHANGES", "No")
with open(os.path.join(test_config_path, file_name), "r") as tpar_file:
self.ca.assert_that_pv_is("LINES_ARRAY:SP", tpar_file.read())

0 comments on commit df7cb68

Please sign in to comment.