def test_parse_configfile(self, mock_open, mock_isfile): mock_open.return_value = ContextualStringIO( "---\ncmd: 'sinfo'\ndbfile: '/tmp/test.db'\n") tn = TrackNodes() tn.parse_configfile() assert (tn.nodes_cmd == 'sinfo' and tn.dbfile == '/tmp/test.db')
def test_detect_resourcemanager_torque(self, mock_which, mock_popen): mock_popen.return_value = mock_Popen() mock_popen.return_value.communicate = types.MethodType( mock_communicate_torque_version, mock_popen.return_value) tn = TrackNodes(nodes_cmd="pbsnodes") tn.detect_resourcemanager() print(tn.resourcemanager) assert (tn.resourcemanager == "torque")
def test_run_verbose(self, mock_which): out = StringIO() orig_stdout = sys.stdout sys.stdout = out tn = TrackNodes(nodes_cmd="sinfo", verbose=True) tn.resourcemanager = "slurm" tn.run() sys.stdout = orig_stdout print(out.getvalue()) assert ("Resource Manager Detected" in out.getvalue())
def test_run(self, mock_which): out = StringIO() orig_stdout = sys.stdout sys.stdout = out tn = TrackNodes(nodes_cmd="sinfo") tn.resourcemanager = "slurm" tn.run() sys.stdout = orig_stdout print(out.getvalue()) assert ("History of Nodes" in out.getvalue())
def test_parse_pbsnodes_cmd(self, mock_popen): mock_popen.return_value = mock_Popen() mock_popen.return_value.communicate = types.MethodType( mock_communicate_torque_example1, mock_popen.return_value) tn = TrackNodes() tn.parse_pbsnodes_cmd("-nl") print(tn.current_failed) print(len(tn.current_failed)) print(tn.current_failed[0][0]) assert (len(tn.current_failed) == 1 and tn.current_failed[0][0] == "n0294")
def test_run_update(self, mock_which, mock_popen): mock_popen.return_value = mock_Popen() mock_popen.return_value.communicate = types.MethodType( mock_communicate_sinfo, mock_popen.return_value) out = StringIO() orig_stdout = sys.stdout sys.stdout = out tn = TrackNodes(update=True, nodes_cmd="sinfo") tn.resourcemanager = "slurm" tn.run() sys.stdout = orig_stdout print(out.getvalue()) assert ("| down | 'broken ram'" in out.getvalue())
def test_detect_resourcemanager_slurm_shortpath(self): tn = TrackNodes() tn.nodes_cmd = "sinfo" tn.detect_resourcemanager() assert (tn.resourcemanager == "slurm")
def test_detect_resourcemanager_slurm_fullpath(self): tn = TrackNodes() tn.nodes_cmd = "/usr/bin/sinfo" tn.detect_resourcemanager() assert (tn.resourcemanager == "slurm")
def test_which_shortpath(self): full_env_path = TrackNodes.which("env") assert (full_env_path == "/usr/bin/env" or full_env_path == "/bin/env")
def test_decode_state(self): assert (TrackNodes.decode_state(3) == "offline,down")
def test_encode_state(self): assert (TrackNodes.encode_state("offline,down") == 3)
def test_find_nodes_cmd(self, mock_which): tn = TrackNodes() tn.find_nodes_cmd() print(tn.nodes_cmd) assert (tn.nodes_cmd == "sinfo")