mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-24 19:13:36 -07:00
MultiServer, customserver: cache: typing improvements
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user