2024-02-14 10:48:56 +01:00
|
|
|
"""Test GLiCID spawner module."""
|
|
|
|
|
|
|
|
from collections import namedtuple
|
|
|
|
|
|
|
|
import glicid_spawner.spawner
|
|
|
|
from batchspawner import SlurmSpawner
|
|
|
|
from glicid_spawner import GlicidSpawner
|
|
|
|
|
|
|
|
User = namedtuple('User', 'name')
|
|
|
|
|
|
|
|
|
|
|
|
def test_spawner_config():
|
|
|
|
"""Test spawner configuration."""
|
|
|
|
spawner = GlicidSpawner()
|
|
|
|
|
|
|
|
assert isinstance(spawner, GlicidSpawner)
|
|
|
|
assert isinstance(spawner, SlurmSpawner)
|
|
|
|
|
|
|
|
assert spawner.batchspawner_singleuser_cmd == 'glicid-spawner-singleuser'
|
|
|
|
|
2024-02-21 15:11:14 +01:00
|
|
|
assert spawner.req_qos == 'short'
|
|
|
|
|
|
|
|
|
|
|
|
def test_spawner_parse_job_id():
|
|
|
|
"""Test spawner job id parser."""
|
|
|
|
spawner = GlicidSpawner()
|
|
|
|
|
|
|
|
assert spawner.parse_job_id('123') == 123
|
|
|
|
assert spawner.parse_job_id('456;nautilus') == '456 -M nautilus'
|
|
|
|
|
|
|
|
assert spawner.parse_job_id('') is None
|
|
|
|
|
2024-02-14 10:48:56 +01:00
|
|
|
|
|
|
|
def test_spawner_options_form(monkeypatch):
|
|
|
|
"""Test spawner options form."""
|
|
|
|
monkeypatch.setattr(
|
|
|
|
glicid_spawner.spawner, 'options_form', lambda username: f"options_form('{username}')"
|
|
|
|
)
|
|
|
|
monkeypatch.setattr(
|
|
|
|
glicid_spawner.spawner,
|
|
|
|
'options_from_form',
|
|
|
|
lambda formdata: f'options_from_form({formdata})',
|
|
|
|
)
|
|
|
|
|
|
|
|
spawner = GlicidSpawner(user=User('john-doe'))
|
|
|
|
|
|
|
|
assert spawner.user.name == 'john-doe'
|
2024-02-21 15:11:14 +01:00
|
|
|
assert spawner.options_form == "options_form('john-doe')"
|
2024-02-14 10:48:56 +01:00
|
|
|
assert spawner.options_from_form({'foo': 123}) == "options_from_form({'foo': 123})"
|