blob: 522d1856da68709aac48f72f4a66587ad6d27c4b [file]
############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import re
import pytest
import atf
@pytest.fixture(scope="module", autouse=True)
def setup():
if atf.get_version("bin/sacct") < (25, 5):
atf.require_accounting()
atf.require_slurm_running()
@pytest.mark.parametrize("opt", ["--help", "-h"])
def test_help(opt):
"""Verify sacct --help displays the help page"""
output = atf.run_command_output("sacct --help", fatal=True)
assert re.search(r"sacct \[<OPTION>\]", output) is not None
assert re.search(r"Valid <OPTION> values are:", output) is not None
assert re.search(r"-A, --accounts:", output) is not None
assert re.search(r"-j, --jobs:", output) is not None
assert re.search(r"-s, --state:", output) is not None
assert re.search(r"-S, --starttime:", output) is not None
assert re.search(r"valid start/end time formats are...", output) is not None
@pytest.mark.parametrize("opt", ["--helpformat", "-e"])
def test_helpformat(opt):
"""Verify sacct --helpformat displays the expected fields"""
output = atf.run_command_output("sacct --helpformat", fatal=True)
assert re.search(r"Account", output) is not None
assert re.search(r"ExitCode", output) is not None
assert re.search(r"JobID", output) is not None
assert re.search(r"NodeList", output) is not None
assert re.search(r"ReqMem", output) is not None
assert re.search(r"Start", output) is not None
assert re.search(r"State", output) is not None
assert re.search(r"Timelimit", output) is not None
assert re.search(r"User", output) is not None
assert re.search(r"WorkDir", output) is not None
if atf.get_version("bin/sacct") >= (26, 5):
assert (
re.search(r"\bExclusive\b", output) is not None
), "sacct --helpformat should advertise the Exclusive field (ticket 23303)"
assert (
re.search(r"\bOverSubscribe\b", output) is not None
), "sacct --helpformat should advertise the OverSubscribe field (ticket 23303)"