| ############################################################################ | |
| # Copyright (C) SchedMD LLC. | |
| ############################################################################ | |
| import re | |
| import pytest | |
| import atf | |
| # Setup | |
| @pytest.fixture(scope="module", autouse=True) | |
| def setup(): | |
| atf.require_slurm_running() | |
| @pytest.fixture(scope="module") | |
| def srun_output(): | |
| return atf.run_command_output("srun -N 1 -t 1 id", fatal=True) | |
| # Verify that a job executes as the appropriate user and group | |
| def test_uid(srun_output): | |
| """Verify that a job executes as the invoking user""" | |
| test_uid = atf.properties["test-user-uid"] | |
| job_uid = ( | |
| int(match.group(1)) if (match := re.search(r"uid=(\d+)", srun_output)) else None | |
| ) | |
| assert job_uid == test_uid | |
| def test_gid(srun_output): | |
| """Verify that a job executes as the invoking group""" | |
| test_gid = atf.properties["test-user-gid"] | |
| job_gid = ( | |
| int(match.group(1)) if (match := re.search(r"gid=(\d+)", srun_output)) else None | |
| ) | |
| assert job_gid == test_gid |