MultiServer, customserver: cache: typing improvements

This commit is contained in:
black-sliver
2026-02-28 20:33:50 +01:00
parent 1346a89a4a
commit 9996c12ef9
3 changed files with 13 additions and 1 deletions

View File

@@ -1,3 +1,5 @@
from typing_extensions import override
from NetUtils import GamesPackage
from Utils import restricted_loads
from apmw.multiserver.gamespackage.cache import GamesPackageCache, ItemNameGroups, LocationNameGroups
@@ -10,6 +12,7 @@ class DBGamesPackageCache(GamesPackageCache):
super().__init__()
self._static = {game: GamesPackageCache.get(self, game, games_package) for game, games_package in static_games_package.items()}
@override
def get(
self,
game: str,
@@ -24,12 +27,13 @@ class DBGamesPackageCache(GamesPackageCache):
from WebHostLib.models import GameDataPackage
row = GameDataPackage.get(checksum=full_games_package["checksum"])
row: GameDataPackage | None = GameDataPackage.get(checksum=full_games_package["checksum"])
if row: # None if rolled on >= 0.3.9 but uploaded to <= 0.3.8 ...
return super().get(game, restricted_loads(row.data))
return super().get(game, full_games_package) # ... in which case full_games_package should be populated
return cached # type: ignore # mypy doesn't understand any value is None
@override
def get_static(self, game: str) -> tuple[GamesPackage, ItemNameGroups, LocationNameGroups]:
return self._static[game]

View File

@@ -2,6 +2,8 @@ import typing as t
from copy import deepcopy
from unittest import TestCase
from typing_extensions import override
import NetUtils
from NetUtils import GamesPackage
from apmw.multiserver.gamespackage.cache import GamesPackageCache
@@ -18,6 +20,7 @@ class GamesPackageCacheTest(TestCase):
"checksum": "1234",
}
@override
def setUp(self) -> None:
self.cache = GamesPackageCache()

View File

@@ -1,6 +1,8 @@
import typing as t
from copy import deepcopy
from typing_extensions import override
from test.multiserver.test_gamespackage_cache import GamesPackageCacheTest
import Utils
@@ -37,6 +39,7 @@ class DBGamesPackageCacheTest(GamesPackageCacheTest):
}
orig_db_type: t.ClassVar[type]
@override
@classmethod
def setUpClass(cls) -> None:
import WebHostLib.models
@@ -44,9 +47,11 @@ class DBGamesPackageCacheTest(GamesPackageCacheTest):
cls.orig_db_type = WebHostLib.models.GameDataPackage
WebHostLib.models.GameDataPackage = FakeGameDataPackage # type: ignore
@override
def setUp(self) -> None:
self.cache = DBGamesPackageCache(self.static_data)
@override
@classmethod
def tearDownClass(cls) -> None:
import WebHostLib.models