mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 04:01:32 -06:00

* Core: fix settings API for removal of Python 3.8, 3.9 This is fixing 2 problems: - The `World` class has the annotation: `settings: ClassVar[Optional["Group"]]` so `MyWorld.settings` should not raise an exception like it does for some worlds. With the `Optional` there, it looks like it should return `None` for the worlds that don't use it. So that's what I changed it to. - `Group.update` had some code that required `typing.Union` instead of the Python 3.10 `|` for unions. added unit test for this fix added change in Zillion that I used to discover this problem and used it to test the test * fix copy-pasted stuff * tuple instead of set Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> --------- Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
17 lines
599 B
Python
17 lines
599 B
Python
from unittest import TestCase
|
|
|
|
from settings import Group
|
|
from worlds.AutoWorld import AutoWorldRegister
|
|
|
|
|
|
class TestSettings(TestCase):
|
|
def test_settings_can_update(self) -> None:
|
|
"""
|
|
Test that world settings can update.
|
|
"""
|
|
for game_name, world_type in AutoWorldRegister.world_types.items():
|
|
with self.subTest(game=game_name):
|
|
if world_type.settings is not None:
|
|
assert isinstance(world_type.settings, Group)
|
|
world_type.settings.update({}) # a previous bug had a crash in this call to update
|