def test_reading_pool_type_from_json_cache(self):
     pool_status = [self._build_ent_json('poolid', 'some type')]
     self.pool_cache.load_status = Mock()
     self.pool_cache.server_status = pool_status
     pooltype_cache = PoolTypeCache()
     pooltype_cache._do_update()
     result = pooltype_cache.get("poolid")
     self.assertEqual('some type', result)
 def test_get_pooltype(self):
     self.cp.getEntitlementList.return_value = [
         self._build_ent_json('poolid', 'some type')
     ]
     pooltype_cache = PoolTypeCache()
     pooltype_cache._do_update()
     result = pooltype_cache.get("poolid")
     self.assertEqual('some type', result)
    def test_requires_update_ents_with_no_pool(self):
        pooltype_cache = PoolTypeCache()
        pooltype_cache.ent_dir = self.ent_dir
        for ent in self.ent_dir.certs:
            ent.pool = None

        # No ents have pools so there is nothing we can update
        self.assertFalse(pooltype_cache.requires_update())
    def test_update_from_pools(self):
        # Input is a map of pool ids to pool json
        pools_map = {}

        for i in range(5):
            pool_id = 'poolid' + str(i)
            pools_map[pool_id] = self._build_pool_json(pool_id, 'some type')

        pooltype_cache = PoolTypeCache()
        pooltype_cache.update_from_pools(pools_map)

        self.assertEqual(5, len(pooltype_cache.pooltype_map))
        for i in range(5):
            expected_id = 'poolid' + str(i)
            self.assertEqual('some type', pooltype_cache.get(expected_id))
    def test_update(self):
        pooltype_cache = PoolTypeCache()
        pooltype_cache.ent_dir = self.ent_dir
        self.cp.getEntitlementList.return_value = [
                self._build_ent_json('poolid', 'some type'),
                self._build_ent_json('poolid2', 'some other type')]

        # requires_update should be true, and should allow this method
        # to generate a correct mapping
        pooltype_cache.update()

        self.assertEqual(2, len(pooltype_cache.pooltype_map))
        self.assertEqual('some type', pooltype_cache.get('poolid'))
        self.assertEqual('some other type', pooltype_cache.get('poolid2'))
    def test_requires_update(self):
        pooltype_cache = PoolTypeCache()
        pooltype_cache.ent_dir = self.ent_dir

        # Doesn't have data for pool with id 'someid'
        self.assertTrue(pooltype_cache.requires_update())

        pooltype_cache.pooltype_map['someid'] = 'some type'

        # After adding data for that entitlements pool, it shouldn't need an update
        self.assertFalse(pooltype_cache.requires_update())
 def test_get_pooltype(self):
     self.cp.getEntitlementList.return_value = [self._build_ent_json('poolid', 'some type')]
     pooltype_cache = PoolTypeCache()
     pooltype_cache._do_update()
     result = pooltype_cache.get("poolid")
     self.assertEqual('some type', result)
 def test_empty_cache(self):
     pooltype_cache = PoolTypeCache()
     result = pooltype_cache.get("some id")
     self.assertEqual('', result)