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