| ############################################################################ |
| # Copyright (C) SchedMD LLC. |
| ############################################################################ |
| import pytest |
| import atf |
| |
| |
| @pytest.fixture(scope="module", autouse=True) |
| def setup(): |
| atf.require_slurm_running() |
| yield |
| cleanup() |
| |
| |
| def cleanup(): |
| result = atf.run_command( |
| f"scontrol delete reservationname={res_name}", user=atf.properties["slurm-user"] |
| ) |
| assert result["exit_code"] == 0, "Couldn't delete the reservation!" |
| |
| |
| def test_reservation_user(): |
| """Test that a reservation created for SlurmUser can't be used by atf""" |
| |
| # Create the reservation for user slurm |
| global res_name |
| res_name = "resv1" |
| create_res = ( |
| f"scontrol create reservationname={res_name} " |
| f"user={atf.properties['slurm-user']} start=now duration=1 nodecnt=1" |
| ) |
| result = atf.run_command(create_res, user=atf.properties["slurm-user"]) |
| assert result["exit_code"] == 0, "Couldn't create the reservation!" |
| |
| # Try to run a job as test-user |
| result = atf.run_command(f"srun -N1 --reservation={res_name} true") |
| assert result["exit_code"] != 0, "The job should have been denied for user!" |
| assert ( |
| "Access denied" in result["stderr"] |
| ), "The job should have been denied for user!" |