blob: 2982c5da718ade924515a398128793e2ded2caa5 [file] [log] [blame]
############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import atf
import pytest
import re
# Setup
@pytest.fixture(scope="module", autouse=True)
def setup():
atf.require_config_parameter("AccountingStorageType", None)
atf.require_config_parameter_excludes("AccountingStorageEnforce", "associations")
atf.require_slurm_running()
def test_account():
"""Test of job account (--account option)."""
my_acct = "MY_ACCT"
qa_acct = "QA_ACCT"
job_id = atf.submit_job_sbatch(
f'--account={my_acct} --wrap="sleep 5"', env_vars=f"SLURM_ACCOUNT={qa_acct}"
)
assert job_id != 0, "Batch submit failure"
output = atf.run_command_output(f"scontrol show job {job_id}")
assert re.search(
rf"Account={my_acct.lower()}", output
), "Account information not processed from sbatch"
file_in = atf.module_tmp_path / "file_in"
atf.make_bash_script(file_in, """env | grep SLURM_ACCOUNT""")
result = atf.run_job(f"-v {file_in}", env_vars=f"SLURM_ACCOUNT={qa_acct}")
job_id = re.search(r"jobid (\d+)", result["stderr"]).group(1)
assert (
re.search(rf"SLURM_ACCOUNT={qa_acct}", result["stdout"]) is not None
), "Account information not processed in srun from env var"
output = atf.run_command_output(f"scontrol show job {job_id}")
assert (
re.search(rf"Account={qa_acct.lower()}", output) is not None
), "Account information not processed from env var in scontrol"