* 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
 |