Add SLURM batch script

This commit is contained in:
Benoît Seignovert 2024-03-08 17:16:30 +01:00
parent 825c9ea2c3
commit e7ab73de0b
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
2 changed files with 92 additions and 3 deletions

View file

@ -5,11 +5,12 @@ from itertools import repeat
import glicid_spawner.spawner
import pytest
from batchspawner import SlurmSpawner
from batchspawner import SlurmSpawner, format_template
from glicid_spawner import GlicidSpawner
from glicid_spawner.spawner import asyncio
User = namedtuple('User', 'name')
User = namedtuple('User', 'name,url')
Hub = namedtuple('Hub', 'public_host,api_url,base_url')
def test_spawner_config():
@ -29,6 +30,35 @@ def test_spawner_config():
assert spawner.progress_rate == 10
def test_spawner_batch_script(monkeypatch):
"""Test spawner SLURM batch script."""
monkeypatch.setattr(GlicidSpawner, 'get_env', lambda _: {})
spawner = GlicidSpawner(
user=User('john-doe', '/john-doe/'),
req_homedir='/home/john-doe',
hub=Hub('public.hostname', 'api.url', 'base.url'),
user_options={
'cluster': 'nautilus',
'workdir': '/home/john-doe',
'pyenv': '/micromamba/john-doe/envs/foo',
},
)
script = format_template(
spawner.batch_script, **(spawner.get_req_subvars() | spawner.user_options)
)
assert '#SBATCH --job-name=jupyterhub_glicid' in script
assert '#SBATCH --chdir=/home/john-doe' in script
assert '#SBATCH --cluster=nautilus' in script
assert '#SBATCH --qos=short' in script
assert 'export JUPYTER_LOG_DIR="/home/john-doe/.jupyter/spawner/logs"' in script
assert 'micromamba activate /micromamba/john-doe/envs/foo;' in script
def test_spawner_parse_job_id():
"""Test spawner job id parser."""
spawner = GlicidSpawner()
@ -50,7 +80,7 @@ def test_spawner_options_form(monkeypatch):
lambda formdata: f'options_from_form({formdata})',
)
spawner = GlicidSpawner(user=User('john-doe'))
spawner = GlicidSpawner(user=User('john-doe', '/john-doe/'))
assert spawner.user.name == 'john-doe'
assert spawner.options_form == "options_form('john-doe')"