def fn(settings, cache={}): return LibraryResolver( api=plugin_mock._api, settings=settings, cache=cache, save_cache_callback=partial(plugin_mock._save_cache, 'library') )
def handshake_complete(self): self._last_version = self._load_cache('last_version', default=None) self._library_resolver = LibraryResolver( api=self._api, settings=self._settings.library, cache=self._load_cache('library', {}), save_cache_callback=partial(self._save_cache, 'library'))
def test_get_key_info(): key_data_1 = {"machine_name": "g1", "human_name": 'G1'} key_data_2 = {"machine_name": "g2", "human_name": 'G2'} key_data_3 = {"machine_name": "g3", "human_name": 'G3'} orders = [ { 'product': { 'category': 'bundle' }, 'tpkd_dict': { 'all_tpks': [key_data_1, key_data_2] } }, { 'product': { 'category': 'storefront' }, 'tpkd_dict': { 'all_tpks': [key_data_3] } }, ] assert LibraryResolver._get_key_infos(orders) == [ KeyInfo(Key(key_data_1), 'bundle'), KeyInfo(Key(key_data_2), 'bundle'), KeyInfo(Key(key_data_3), 'storefront'), ]
def test_is_multigame_key(human_name, category, blacklist, is_multigame): """Most common case where 1 key == 1 game""" key = Key({ "machine_name": "mock_machine_name", "human_name": human_name, "key_type_human_name": "Steam Key" }) assert LibraryResolver._is_multigame_key(key, category, blacklist) == is_multigame
def handshake_complete(self): self._library_resolver = LibraryResolver( api=self._api, settings=self._settings.library, cache=self._load_cache('library', {}), save_cache_callback=partial(self._save_cache, 'library') ) self._last_version = self._load_cache('last_version', default=None) self._trove_games = {g['machine_name']: TroveGame(g) for g in self._load_cache('trove_games', [])} self._choice_games = {g['id']: ChoiceGame(**g) for g in self._load_cache('choice_games', [])}
def test_split_multigame_key(): tpks = { "machine_name": "sega", "human_name": "Alpha Protocol, Company of Heroes, Rome: Total War, Hell Yeah! Wrath of the Dead Rabbit", } key = Key(tpks) assert LibraryResolver._split_multigame_key(key) == [ KeyGame(key, "sega_0", "Alpha Protocol"), KeyGame(key, "sega_1", "Company of Heroes"), KeyGame(key, "sega_2", "Rome: Total War"), KeyGame(key, "sega_3", "Hell Yeah! Wrath of the Dead Rabbit") ]
def handshake_complete(self): # tmp migration to fix 0.4.0 cache error library = json.loads(self.persistent_cache.get('library', '{}')) if library and type(library.get('orders')) == list: logging.info('Old cache migration') self._save_cache('library', {}) self._settings = Settings( cache=self.persistent_cache, save_cache_callback=self.push_cache ) self._library_resolver = LibraryResolver( api=self._api, settings=self._settings.library, cache=json.loads(self.persistent_cache.get('library', '{}')), save_cache_callback=partial(self._save_cache, 'library') )