|
12 | 12 | # license: GPLv2 |
13 | 13 | # |
14 | 14 |
|
15 | | -import shutil |
16 | | - |
17 | 15 | from eessi_bot_job_manager import EESSIBotSoftwareLayerJobManager |
18 | 16 |
|
19 | 17 |
|
20 | 18 | def test_determine_running_jobs(): |
21 | | - # copy needed app.cfg from tests directory |
22 | | - shutil.copyfile("tests/test_app.cfg", "app.cfg") |
23 | | - |
24 | 19 | job_manager = EESSIBotSoftwareLayerJobManager() |
25 | 20 |
|
26 | 21 | assert job_manager.determine_running_jobs({}) == [] |
@@ -135,3 +130,31 @@ def test_determine_finished_jobs(): |
135 | 130 | assert job_manager.determine_finished_jobs(known_jobs, current_jobs_all_jobs) == [] |
136 | 131 | assert job_manager.determine_finished_jobs(known_jobs, current_jobs_one_job) == ['1', '2'] |
137 | 132 | assert job_manager.determine_finished_jobs(known_jobs, {}) == ['0', '1', '2'] |
| 133 | + |
| 134 | + |
| 135 | +def test_parse_scontrol_show_job_output(): |
| 136 | + # Dummy output (shortened) from Slurm 25.11.3 for "scontrol show job <jobid>" |
| 137 | + scontrol_output = 'JobId=123 JobName=bot_test_job UserId=eessibot(12345) MCS_label=N/A EligibleTime=Unknown' \ |
| 138 | + ' AllocNode:Sid=my.node.name:123456 SubmitLine=/opt/slurm/25.11.3/bin/sbatch --hold' \ |
| 139 | + ' --time=10-0:0:0 --nodes=1 --exclusive --cpus-per-task=1 --job-name=bot_test_job ' \ |
| 140 | + '/home/eessibot/job.slurm WorkDir=/jobs/2026.01/pr_123/event_123-456-789/run_000/riscv64/' \ |
| 141 | + 'generic/dev.eessi.io-riscv StdErr= StdIn=/dev/null StdOut=/jobs/2026.01/pr_123/' \ |
| 142 | + 'event_123-456-789/run_000/riscv64/generic/dev.eessi.io-riscv/slurm-123.out TresPerTask=cpu=1' |
| 143 | + job_manager = EESSIBotSoftwareLayerJobManager() |
| 144 | + job_info = job_manager.parse_scontrol_show_job_output(scontrol_output) |
| 145 | + job_info_expected = { |
| 146 | + 'JobId': '123', |
| 147 | + 'JobName': 'bot_test_job', |
| 148 | + 'UserId': 'eessibot(12345)', |
| 149 | + 'MCS_label': 'N/A', |
| 150 | + 'EligibleTime': 'Unknown', |
| 151 | + 'AllocNode:Sid': 'my.node.name:123456', |
| 152 | + 'SubmitLine': '/opt/slurm/25.11.3/bin/sbatch --hold --time=10-0:0:0 --nodes=1 --exclusive --cpus-per-task=1 ' |
| 153 | + '--job-name=bot_test_job /home/eessibot/job.slurm', |
| 154 | + 'WorkDir': '/jobs/2026.01/pr_123/event_123-456-789/run_000/riscv64/generic/dev.eessi.io-riscv', |
| 155 | + 'StdErr': '', |
| 156 | + 'StdIn': '/dev/null', |
| 157 | + 'StdOut': '/jobs/2026.01/pr_123/event_123-456-789/run_000/riscv64/generic/dev.eessi.io-riscv/slurm-123.out', |
| 158 | + 'TresPerTask': 'cpu=1', |
| 159 | + } |
| 160 | + assert job_info == job_info_expected |
0 commit comments