Exemplo n.º 1
0
 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'))
Exemplo n.º 3
0
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'),
    ]
Exemplo n.º 4
0
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', [])}
Exemplo n.º 6
0
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')
        )