WebHost: Allowing options that work on WebHost to be used in presets (#3441)
This commit is contained in:
parent
424c8b0be9
commit
d9120f0bea
|
@ -91,7 +91,7 @@ def option_presets(game: str) -> Response:
|
||||||
f"Expected {option.special_range_names.keys()} or {option.range_start}-{option.range_end}."
|
f"Expected {option.special_range_names.keys()} or {option.range_start}-{option.range_end}."
|
||||||
|
|
||||||
presets[preset_name][preset_option_name] = option.value
|
presets[preset_name][preset_option_name] = option.value
|
||||||
elif isinstance(option, Options.Range):
|
elif isinstance(option, (Options.Range, Options.OptionSet, Options.OptionList, Options.ItemDict)):
|
||||||
presets[preset_name][preset_option_name] = option.value
|
presets[preset_name][preset_option_name] = option.value
|
||||||
elif isinstance(preset_option, str):
|
elif isinstance(preset_option, str):
|
||||||
# Ensure the option value is valid for Choice and Toggle options
|
# Ensure the option value is valid for Choice and Toggle options
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from worlds import AutoWorldRegister
|
from worlds import AutoWorldRegister
|
||||||
from Options import Choice, NamedRange, Toggle, Range
|
from Options import ItemDict, NamedRange, NumericOption, OptionList, OptionSet
|
||||||
|
|
||||||
|
|
||||||
class TestOptionPresets(unittest.TestCase):
|
class TestOptionPresets(unittest.TestCase):
|
||||||
|
@ -14,7 +14,7 @@ class TestOptionPresets(unittest.TestCase):
|
||||||
with self.subTest(game=game_name, preset=preset_name, option=option_name):
|
with self.subTest(game=game_name, preset=preset_name, option=option_name):
|
||||||
try:
|
try:
|
||||||
option = world_type.options_dataclass.type_hints[option_name].from_any(option_value)
|
option = world_type.options_dataclass.type_hints[option_name].from_any(option_value)
|
||||||
supported_types = [Choice, Toggle, Range, NamedRange]
|
supported_types = [NumericOption, OptionSet, OptionList, ItemDict]
|
||||||
if not any([issubclass(option.__class__, t) for t in supported_types]):
|
if not any([issubclass(option.__class__, t) for t in supported_types]):
|
||||||
self.fail(f"'{option_name}' in preset '{preset_name}' for game '{game_name}' "
|
self.fail(f"'{option_name}' in preset '{preset_name}' for game '{game_name}' "
|
||||||
f"is not a supported type for webhost. "
|
f"is not a supported type for webhost. "
|
||||||
|
|
Loading…
Reference in New Issue