Settings: change/fix tests behavior (#2053)

* Settings: disable saving and gui during tests

* Tests: create a fresh host.yaml for TestHostYAML

Now that host.yaml is .gitignored, testing the local host.yaml makes no sense anymore
This commit is contained in:
black-sliver
2023-07-29 18:50:21 +02:00
committed by GitHub
parent a90825eac3
commit 7b8f8918fc
3 changed files with 23 additions and 7 deletions

View File

@@ -21,6 +21,7 @@ __all__ = [
]
no_gui = False
skip_autosave = False
_world_settings_name_cache: Dict[str, str] = {} # TODO: cache on disk and update when worlds change
_world_settings_name_cache_updated = False
_lock = Lock()
@@ -767,11 +768,17 @@ class Settings(Group):
self._filename = location
def autosave() -> None:
if self._filename and self.changed:
if __debug__:
import __main__
main_file = getattr(__main__, "__file__", "")
assert "pytest" not in main_file and "unittest" not in main_file, \
f"Auto-saving {self._filename} during unittests"
if self._filename and self.changed and not skip_autosave:
self.save()
import atexit
atexit.register(autosave)
if not skip_autosave:
import atexit
atexit.register(autosave)
def save(self, location: Optional[str] = None) -> None: # as above
location = location or self._filename