Source code for pyslurmutils.tests.test_slurm_params

import pytest

from ..client.rest.api.slurm_params import _integral_number
from ..client.rest.api.slurm_params import coerce_parameters


[docs] def test_integral_number(): assert _integral_number((0, 0, 41), 5) == { "number": 5, "set": True, "infinite": False, } assert _integral_number((0, 0, 41), 5.2) == { "number": 5, "set": True, "infinite": False, } assert _integral_number((0, 0, 41), 5.5) == { "number": 6, "set": True, "infinite": False, } assert _integral_number((0, 0, 41), "10") == { "number": 10, "set": True, "infinite": False, } assert _integral_number((0, 0, 41), "10.6") == { "number": 11, "set": True, "infinite": False, } assert _integral_number((0, 0, 41), "not-a-number") == "not-a-number"
[docs] def test_timedelta_in_minutes(): parameters = {"time_limit": "01:00:00"} expected = {"time_limit": {"number": 60, "set": True, "infinite": False}} coerce_parameters((0, 0, 41), parameters) assert parameters == expected parameters = {"time_limit": 30.6} expected = {"time_limit": {"number": 31, "set": True, "infinite": False}} coerce_parameters((0, 0, 41), parameters) assert parameters == expected parameters = {"time_limit": "not-a-time"} expected = {"time_limit": "not-a-time"} coerce_parameters((0, 0, 41), parameters) assert parameters == expected
[docs] def test_environment_version(): parameters = {"environment": {"A": 1, "B": "test"}} expected = {"environment": {"A": "1", "B": "test"}} coerce_parameters((0, 0, 38), parameters) assert parameters == expected parameters = {"environment": {"A": 1, "B": "test"}} expected = {"environment": ["A=1", "B=test"]} coerce_parameters((0, 0, 41), parameters) assert parameters == expected
[docs] @pytest.mark.parametrize( "mem, int_mb", [ ("1G", 1024), ("1GB", 1024), ("0.5GB", 512), ("512M", 512), ("100K", 1), ("2048", 2048), (2048.2, 2048), ], ) def test_memory_in_megabytes(mem, int_mb): parameters = {"memory_per_cpu": mem} expected = {"memory_per_cpu": {"number": int_mb, "set": True, "infinite": False}} coerce_parameters((0, 0, 41), parameters) assert parameters == expected
[docs] def test_tres_memory_in_megabytes(): parameters = {"memory_per_tres": "gres/gpu:2G; gres/mic:512M"} expected = {"memory_per_tres": "gres/gpu:2048;gres/mic:512"} coerce_parameters((0, 0, 41), parameters) assert parameters == expected parameters = {"memory_per_tres": "gres/gpu:1G;gres/gpu:512M"} expected = {"memory_per_tres": "gres/gpu:1536"} coerce_parameters((0, 0, 41), parameters) assert parameters == expected parameters = {"memory_per_tres": "invalid_format"} expected = {"memory_per_tres": "invalid_format"} coerce_parameters((0, 0, 41), parameters) assert parameters == expected