コード例 #1
0
def configure_dogpile_cache(settings):
    # This is somewhat inspired by pyramid_dogpile_cache.includeme()
    # and build_dogpile_region_from_dict().
    _parse_dogpile_cache_settings(settings)
    _, region_settings = build_dogpile_region_settings_from_settings(settings)

    for name, settings in region_settings.items():
        # XXX Type conversion for all sorts of settings is woefully incomplete.
        settings['expiration_time'] = int(settings['expiration_time'])
        settings.setdefault(
            'arguments.memcached_expire_time', settings['expiration_time'] +
            int(settings.get(
                'memcache_expire_time_interval', 30)))

        region = get_region(name)
        # XXX kludgy: Remove any existing backend configuration, so
        # configure_dogpile_cache() may be called multiple times (which
        # should only happen in tests).
        region.__dict__.pop('backend', None)
        region.configure_from_config(settings, prefix='')

    # Since get_region() returns an unconfigured region for *any* name you
    # pass in, we make sure that all used regions are configured now.
    for region in CACHE_REGIONS.values():
        if 'backend' not in region.__dict__:
            raise dogpile.cache.exception.RegionNotConfigured(
                'Region %r used in python code, but not configured' %
                region.name)
コード例 #2
0
ファイル: tests.py プロジェクト: ncadou/pyramid_dogpile_cache
    def test_build_dogpile_region_settings_from_settings(self):
        from pyramid_dogpile_cache import build_dogpile_region_settings_from_settings
        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 0)

        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.regions': 'aaa, bbb',
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 2)
        self.assertEqual(region_settings_dict['aaa']['backend'], 'memory')
        self.assertEqual(region_settings_dict['aaa']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['backend'], 'memory')
        self.assertEqual(region_settings_dict['bbb']['expire'], 10)

        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.regions': 'aaa',
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                'dogpile_cache.bbb.foo': 'foo',
                'dogpile_cache.bbb.foo.bar': 'foo.bar',
                'dogpile_cache.ccc.backend': 'file',
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 3)
        self.assertEqual(region_settings_dict['aaa']['backend'], 'memory')
        self.assertEqual(region_settings_dict['aaa']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['backend'], 'memory')
        self.assertEqual(region_settings_dict['bbb']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['foo'], 'foo')
        self.assertEqual(region_settings_dict['bbb']['foo.bar'], 'foo.bar')
        self.assertEqual(region_settings_dict['ccc']['backend'], 'file')
        self.assertEqual(region_settings_dict['ccc']['expire'], 10)
コード例 #3
0
    def test_build_dogpile_region_settings_from_settings(self):
        from pyramid_dogpile_cache import build_dogpile_region_settings_from_settings
        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 0)

        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.regions': 'aaa, bbb',
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 2)
        self.assertEqual(region_settings_dict['aaa']['backend'], 'memory')
        self.assertEqual(region_settings_dict['aaa']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['backend'], 'memory')
        self.assertEqual(region_settings_dict['bbb']['expire'], 10)

        default_settings, region_settings_dict = \
            build_dogpile_region_settings_from_settings({
                'dogpile_cache.regions': 'aaa',
                'dogpile_cache.backend': 'memory',
                'dogpile_cache.expire': 10,
                'dogpile_cache.bbb.foo': 'foo',
                'dogpile_cache.bbb.foo.bar': 'foo.bar',
                'dogpile_cache.ccc.backend': 'file',
                })
        self.assertEqual(default_settings['backend'], 'memory')
        self.assertEqual(default_settings['expire'], 10)
        self.assertEqual(len(region_settings_dict), 3)
        self.assertEqual(region_settings_dict['aaa']['backend'], 'memory')
        self.assertEqual(region_settings_dict['aaa']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['backend'], 'memory')
        self.assertEqual(region_settings_dict['bbb']['expire'], 10)
        self.assertEqual(region_settings_dict['bbb']['foo'], 'foo')
        self.assertEqual(region_settings_dict['bbb']['foo.bar'], 'foo.bar')
        self.assertEqual(region_settings_dict['ccc']['backend'], 'file')
        self.assertEqual(region_settings_dict['ccc']['expire'], 10)