fix 'set' to only accept a single argument

This commit is contained in:
Maximilian Hils 2019-11-19 18:29:22 +01:00
parent 76e6484107
commit c7eedcbc1a
2 changed files with 3 additions and 3 deletions

View File

@ -83,14 +83,14 @@ class Core:
)
@command.command("set")
def set(self, option: str, *value: str) -> None:
def set(self, option: str, value: str = "") -> None:
"""
Set an option. When the value is omitted, booleans are set to true,
strings and integers are set to None (if permitted), and sequences
are emptied. Boolean values can be true, false or toggle.
Multiple values are concatenated with a single space.
"""
strspec = f"{option}={' '.join(value)}"
strspec = f"{option}={value}"
try:
ctx.options.set(strspec)
except exceptions.OptionsError as e:

View File

@ -11,7 +11,7 @@ def test_set():
sa = core.Core()
with taddons.context(loadcore=False) as tctx:
assert tctx.master.options.server
tctx.command(sa.set, "server=false")
tctx.command(sa.set, "server", "false")
assert not tctx.master.options.server
with pytest.raises(exceptions.CommandError):