| ############################################################################ |
| # Copyright (C) SchedMD LLC. |
| ############################################################################ |
| import atf |
| import pytest |
| |
| # import re |
| # import time |
| |
| |
| @pytest.fixture(scope="module", autouse=True) |
| def setup(): |
| atf.require_auto_config("wants to change the partition state") |
| atf.require_slurm_running() |
| |
| |
| @pytest.fixture(scope="module") |
| def default_partition(): |
| """Determine the default partition""" |
| return atf.default_partition() |
| |
| |
| def test_partition_up(default_partition): |
| """Verify that a job will run in an UP partition""" |
| |
| partitions_dict = atf.get_partitions() |
| assert partitions_dict[default_partition]["State"] == "UP" |
| assert atf.run_job_exit(f"-p {default_partition} -N1 true") == 0 |
| |
| |
| def test_partition_down(default_partition): |
| """Verify that a job will not run in a DOWN partition""" |
| |
| atf.run_command( |
| f"scontrol update PartitionName={default_partition} State=DOWN", |
| user=atf.properties["slurm-user"], |
| fatal=True, |
| ) |
| partitions_dict = atf.get_partitions() |
| assert partitions_dict[default_partition]["State"] == "DOWN" |
| assert atf.run_job_exit(f"-p {default_partition} -N1 true") != 0 |