Add spawner config tests

This commit is contained in:
Benoît Seignovert 2024-02-14 10:48:56 +01:00
parent 2333ccd168
commit f1f6526daa
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
2 changed files with 44 additions and 2 deletions

View file

@ -1,7 +1,7 @@
"""GLiCID spawner module.""" """GLiCID spawner module."""
from batchspawner import SlurmSpawner from batchspawner import SlurmSpawner
from traitlets import Unicode from traitlets import Unicode, default
from .form import options_form, options_from_form from .form import options_form, options_from_form
@ -9,11 +9,15 @@ from .form import options_form, options_from_form
class GlicidSpawner(SlurmSpawner): class GlicidSpawner(SlurmSpawner):
"""Glicid SLURM Spawner.""" """Glicid SLURM Spawner."""
batchspawner_singleuser_cmd = Unicode( glicid_singleuser_cmd = Unicode(
'glicid-spawner-singleuser', 'glicid-spawner-singleuser',
help='Glicid spawner singleuser command.', help='Glicid spawner singleuser command.',
).tag(config=True) ).tag(config=True)
@default('batchspawner_singleuser_cmd')
def _batchspawner_singleuser_cmd_default(self):
return self.glicid_singleuser_cmd
def options_form(self) -> str: def options_form(self) -> str:
"""JupyterHub rendered form template.""" """JupyterHub rendered form template."""
return options_form(self.user.name) return options_form(self.user.name)

38
tests/test_spawner.py Normal file
View file

@ -0,0 +1,38 @@
"""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.glicid_singleuser_cmd == 'glicid-spawner-singleuser'
assert spawner.batchspawner_singleuser_cmd == 'glicid-spawner-singleuser'
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'
assert spawner.options_form() == "options_form('john-doe')"
assert spawner.options_from_form({'foo': 123}) == "options_from_form({'foo': 123})"