示例#1
0
    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')
示例#2
0
    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")
示例#3
0
    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())
示例#4
0
    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())
示例#5
0
    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")
示例#6
0
    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())
示例#7
0
 def test_detect_resourcemanager_slurm_shortpath(self):
     tn = TrackNodes()
     tn.nodes_cmd = "sinfo"
     tn.detect_resourcemanager()
     assert (tn.resourcemanager == "slurm")
示例#8
0
 def test_detect_resourcemanager_slurm_fullpath(self):
     tn = TrackNodes()
     tn.nodes_cmd = "/usr/bin/sinfo"
     tn.detect_resourcemanager()
     assert (tn.resourcemanager == "slurm")
示例#9
0
 def test_which_shortpath(self):
     full_env_path = TrackNodes.which("env")
     assert (full_env_path == "/usr/bin/env" or full_env_path == "/bin/env")
示例#10
0
 def test_decode_state(self):
     assert (TrackNodes.decode_state(3) == "offline,down")
示例#11
0
 def test_encode_state(self):
     assert (TrackNodes.encode_state("offline,down") == 3)
示例#12
0
    def test_find_nodes_cmd(self, mock_which):
        tn = TrackNodes()
        tn.find_nodes_cmd()

        print(tn.nodes_cmd)
        assert (tn.nodes_cmd == "sinfo")