Пример #1
0
    def test_should_use_s3_reader_with_prefix_with_simple_settings(
        self, bucket_name, region, s3
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={
                'DYNAMIC_SETTINGS': {
                    'backend': 's3',
                    'bucket_name': bucket_name,
                    'region': region,
                    'prefix': 'MYAPP_'
                }
            }
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        self._set_value_on_s3(
            s3,
            bucket_name,
            'MYAPP_SIMPLE_STRING',
            'dynamic'
        )
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert (
            self._get_value_from_s3(s3, bucket_name, 'MYAPP_SIMPLE_STRING') ==
            'foo'
        )
Пример #2
0
    def test_should_use_s3_reader_with_prefix_with_simple_settings(
        self, bucket_name, region, s3
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={
                'DYNAMIC_SETTINGS': {
                    'backend': 's3',
                    'bucket_name': bucket_name,
                    'region': region,
                    'prefix': 'MYAPP_'
                }
            }
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        self._set_value_on_s3(
            s3,
            bucket_name,
            'MYAPP_SIMPLE_STRING',
            'dynamic'
        )
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert (
            self._get_value_from_s3(s3, bucket_name, 'MYAPP_SIMPLE_STRING') ==
            'foo'
        )
    def test_should_override_setting_by_reader_value(self, settings_dict):
        settings = LazySettings('tests.samples.simple')
        settings.configure(**settings_dict)

        assert settings.SIMPLE_STRING == 'simple'

        settings._dynamic_reader.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
    def test_should_update_settings_in_dynamic_storage(self, settings_dict):
        settings = LazySettings('tests.samples.dynamic')
        settings.configure(**settings_dict)
        settings.setup()

        settings._dynamic_reader.set('SIMPLE_STRING', 'simple')
        settings.configure(SIMPLE_STRING='dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
        assert settings._dynamic_reader.get('SIMPLE_STRING') == 'dynamic'
    def test_should_configure_settings_with_new_values(self):
        settings = LazySettings('tests.samples.simple')

        assert settings.SIMPLE_STRING == 'simple'
        settings.configure(SIMPLE_STRING='simple2')
        assert settings.SIMPLE_STRING == 'simple2'

        settings.configure(NEW_VALUE='new')
        assert settings.NEW_VALUE == 'new'
Пример #6
0
    def test_should_configure_settings_with_new_values(self):
        settings = LazySettings('tests.samples.simple')

        assert settings.SIMPLE_STRING == 'simple'
        settings.configure(SIMPLE_STRING='simple2')
        assert settings.SIMPLE_STRING == 'simple2'

        settings.configure(NEW_VALUE='new')
        assert settings.NEW_VALUE == 'new'
    def test_should_override_setting_by_reader_value(self, settings_dict):
        settings = LazySettings('tests.samples.simple')
        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        settings._dynamic_reader.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
    def test_should_update_settings_in_dynamic_storage(self, settings_dict):
        settings = LazySettings('tests.samples.dynamic')
        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        settings._dynamic_reader.set('SIMPLE_STRING', 'simple')
        settings.configure(SIMPLE_STRING='dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
        assert settings._dynamic_reader.get('SIMPLE_STRING') == 'dynamic'
Пример #9
0
    def test_configure(self):
        expect_module = 'tests.samples.simple'
        settings = LazySettings(expect_module)

        assert settings.SIMPLE_STRING == 'simple'
        settings.configure(SIMPLE_STRING='simple2')
        assert settings.SIMPLE_STRING == 'simple2'

        settings.configure(NEW_VALUE='new')
        assert settings.NEW_VALUE == 'new'
Пример #10
0
    def test_should_return_a_zero_value_by_reader_value(
            self, settings_dict, value):
        settings = LazySettings('tests.samples.simple')
        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        settings._dynamic_reader.set('SIMPLE_STRING', value)
        assert settings.SIMPLE_STRING == value
    def test_should_return_a_zero_value_by_reader_value(
        self, settings_dict, value
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        settings._dynamic_reader.set('SIMPLE_STRING', value)
        assert settings.SIMPLE_STRING == value
    def test_should_update_setting_by_last_reader_value(
            self, settings_dict, reader):
        settings = LazySettings('tests.samples.simple')
        settings.configure(**settings_dict)

        assert settings.SIMPLE_STRING == 'simple'

        settings._dynamic_reader.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        del settings._dynamic_reader._dict['SIMPLE_STRING']
        assert settings.SIMPLE_STRING == 'dynamic'
Пример #13
0
    def test_should_use_consul_reader_with_simple_settings(self, consul):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': {
                'backend': 'consul'
            }})

        assert settings.SIMPLE_STRING == 'simple'

        consul.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert consul.get('SIMPLE_STRING') == 'foo'
    def test_should_update_settings_in_dynamic_storage_only_if_match_pattern(
            self, settings_dict):
        settings = LazySettings('tests.samples.dynamic')

        settings_dict['SIMPLE_SETTINGS']['DYNAMIC_SETTINGS'][
            'pattern'] = 'SIMPLE_*'

        settings.configure(**settings_dict)
        settings.setup()

        settings._dynamic_reader._set('ANOTHER_STRING', 'another')
        settings.configure(ANOTHER_STRING='dynamic')
        assert settings.ANOTHER_STRING == 'dynamic'
        assert settings._dynamic_reader._get('ANOTHER_STRING') == 'another'
Пример #15
0
    def test_should_use_redis_reader_with_simple_settings(self, redis):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': {
                'backend': 'redis'
            }})

        assert settings.SIMPLE_STRING == 'simple'

        redis.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert self._get_value_from_redis(redis, 'SIMPLE_STRING') == 'foo'
Пример #16
0
    def test_should_use_redis_reader_with_prefix_with_simple_settings(self, redis):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': {'backend': 'redis', 'prefix': 'MYAPP_'}}
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        redis.set('MYAPP_SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert self._get_value_from_redis(redis, 'MYAPP_SIMPLE_STRING') == 'foo'
Пример #17
0
    def test_should_use_consul_reader_with_simple_settings(self, consul):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': {'backend': 'consul'}}
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        consul.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert consul.get('SIMPLE_STRING') == 'foo'
    def test_should_use_dynamic_setting_only_for_setting_than_match_pattern(
            self, settings_dict):
        settings = LazySettings('tests.samples.dynamic')

        settings_dict['SIMPLE_SETTINGS']['DYNAMIC_SETTINGS'][
            'pattern'] = 'SIMPLE_*'

        settings.configure(**settings_dict)

        assert settings.ANOTHER_STRING == 'another'
        settings._dynamic_reader.set('ANOTHER_STRING', 'dynamic')
        assert settings.ANOTHER_STRING == 'another'

        assert settings.SIMPLE_STRING == 'simple'
        settings._dynamic_reader.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
    def test_should_update_settings_in_dynamic_storage_only_if_match_pattern(
        self, settings_dict
    ):
        settings = LazySettings('tests.samples.dynamic')

        settings_dict[
            'SIMPLE_SETTINGS'
        ]['DYNAMIC_SETTINGS']['pattern'] = 'SIMPLE_*'

        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        settings._dynamic_reader._set('ANOTHER_STRING', 'another')
        settings.configure(ANOTHER_STRING='dynamic')
        assert settings.ANOTHER_STRING == 'dynamic'
        assert settings._dynamic_reader._get('ANOTHER_STRING') == 'another'
Пример #20
0
    def test_should_use_database_reader_with_simple_settings(
            self, database, sqlite_db):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={
                'DYNAMIC_SETTINGS': {
                    'backend': 'database',
                    'sqlalchemy.url': sqlite_db
                }
            })

        assert settings.SIMPLE_STRING == 'simple'

        database.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert database.get('SIMPLE_STRING') == 'foo'
Пример #21
0
    def test_should_use_consul_reader_with_null_prefix_with_simple_settings(
            self, consul):
        settings = LazySettings('tests.samples.simple')
        settings.configure(SIMPLE_SETTINGS={
            'DYNAMIC_SETTINGS': {
                'backend': 'consul',
                'prefix': None
            }
        })
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        consul.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert consul.get('SIMPLE_STRING') == 'foo'
Пример #22
0
    def test_should_use_database_reader_with_simple_settings(
        self, database, sqlite_db
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': {
                'backend': 'database',
                'sqlalchemy.url': sqlite_db
            }}
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        database.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert database.get('SIMPLE_STRING') == 'foo'
    def test_should_use_dynamic_setting_only_for_setting_than_match_pattern(
        self, settings_dict
    ):
        settings = LazySettings('tests.samples.dynamic')

        settings_dict[
            'SIMPLE_SETTINGS'
        ]['DYNAMIC_SETTINGS']['pattern'] = 'SIMPLE_*'

        settings.configure(**settings_dict)
        settings._initialized = False  # to load dynamic read
        settings.setup()

        assert settings.ANOTHER_STRING == 'another'
        settings._dynamic_reader.set('ANOTHER_STRING', 'dynamic')
        assert settings.ANOTHER_STRING == 'another'

        assert settings.SIMPLE_STRING == 'simple'
        settings._dynamic_reader.set('SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'
Пример #24
0
    def test_should_use_database_reader_with_prefix_with_simple_settings(
            self, database, sqlite_db):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={
                'DYNAMIC_SETTINGS': {
                    'backend': 'database',
                    'sqlalchemy.url': sqlite_db,
                    'prefix': 'MYAPP_'
                }
            })
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        database.set('MYAPP_SIMPLE_STRING', 'dynamic')
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert database.get('MYAPP_SIMPLE_STRING') == 'foo'
Пример #25
0
    def test_should_use_memcached_reader_with_simple_settings(
        self,
        memcached,
        dynamic_settings
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': dynamic_settings}
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        memcached.set('SIMPLE_STRING', 'dynamic', noreply=False)
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert self._get_value_from_memcached(
            memcached,
            'SIMPLE_STRING'
        ) == 'foo'
Пример #26
0
    def test_should_use_memcached_reader_with_simple_settings(
        self,
        memcached,
        dynamic_settings
    ):
        settings = LazySettings('tests.samples.simple')
        settings.configure(
            SIMPLE_SETTINGS={'DYNAMIC_SETTINGS': dynamic_settings}
        )
        settings._initialized = False
        settings.setup()

        assert settings.SIMPLE_STRING == 'simple'

        memcached.set('SIMPLE_STRING', 'dynamic', noreply=False)
        assert settings.SIMPLE_STRING == 'dynamic'

        settings.configure(SIMPLE_STRING='foo')
        assert self._get_value_from_memcached(
            memcached,
            'SIMPLE_STRING'
        ) == 'foo'
Пример #27
0
    def test_should_override_a_setting_without_accessing_it_first(self):
        expect_module = 'tests.samples.simple'
        settings = LazySettings(expect_module)

        settings.configure(SIMPLE_STRING='overridden')
        assert settings.SIMPLE_STRING == 'overridden'
Пример #28
0
    def test_should_override_a_setting_without_accessing_it_first(self):
        expect_module = 'tests.samples.simple'
        settings = LazySettings(expect_module)

        settings.configure(SIMPLE_STRING='overridden')
        assert settings.SIMPLE_STRING == 'overridden'