diff --git a/snakemake/resources.py b/snakemake/resources.py index a343cf458..3dd052e64 100644 --- a/snakemake/resources.py +++ b/snakemake/resources.py @@ -20,7 +20,7 @@ class DefaultResources: @classmethod def decode_arg(cls, arg): try: - return arg.split("=") + return arg.split("=", maxsplit=1) except ValueError: raise ValueError("Resources have to be defined as name=value pairs.") diff --git a/tests/test_slurm.py b/tests/test_slurm.py index 88e6822e0..0f49348e1 100644 --- a/tests/test_slurm.py +++ b/tests/test_slurm.py @@ -80,3 +80,20 @@ def test_slurm_complex(): ] ), ) + + +@skip_on_windows +def test_slurm_extra_arguments(): + """Make sure arguments to default resources + are allowed to contain = signs, which is needed + for extra slurm arguments""" + run( + dpath("test_slurm_mpi"), + slurm=True, + show_failed_logs=True, + use_conda=True, + default_resources=DefaultResources( + ["slurm_account=runner", "slurm_partition=debug", + "slurm_extra='--mail-type=none'"] + ), + )