Exemplo n.º 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'
        )
Exemplo n.º 2
0
def get_settings_by_environment(module_name):
    settings = LazySettings()
    mock_dict = {key: module_name for key in LazySettings.ENVIRON_KEYS}
    with patch.dict('os.environ', mock_dict):
        settings.setup()

    return settings
Exemplo n.º 3
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'
        )
Exemplo n.º 4
0
def get_settings_by_cmd_line(module_name):
    settings = LazySettings()

    with patch.object(sys, 'argv', ['', '--settings={}'.format(module_name)]):
        settings.setup()

    return settings
    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 get_settings_by_environment(module_name):
    settings = LazySettings()
    mock_dict = {
        key: module_name for key in LazySettings.ENVIRON_KEYS
    }
    with patch.dict('os.environ', mock_dict):
        settings.setup()

    return settings
    def test_should_read_environment_settings_value(self, env_var):
        expect_module = 'tests.samples.complex'

        settings = LazySettings()
        with patch.object(sys, 'argv', []):
            with patch.dict('os.environ', {env_var: expect_module}):
                settings.setup()

        assert settings._settings_list == [expect_module]
Exemplo n.º 8
0
    def test_should_read_cmd_line_settings_value(self, cmd_arg):
        expect_module = 'tests.samples.simple'

        settings = LazySettings()
        with patch.object(sys, 'argv',
                          ['', '{}={}'.format(cmd_arg, expect_module)]):
            settings.setup()

        assert settings._settings_list == [expect_module]
Exemplo n.º 9
0
    def test_should_read_environment_settings_value(self, env_var):
        expect_module = 'tests.samples.complex'

        settings = LazySettings()
        with patch.object(sys, 'argv', []):
            with patch.dict('os.environ', {env_var: expect_module}):
                settings.setup()

        assert settings._settings_list == [expect_module]
def get_settings_by_cmd_line(module_name):
    settings = LazySettings()

    with patch.object(
        sys, 'argv', ['', '--settings={}'.format(module_name)]
    ):
        settings.setup()

    return settings
    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'
    def test_should_read_cmd_line_settings_value(self, cmd_arg):
        expect_module = 'tests.samples.simple'

        settings = LazySettings()
        with patch.object(
            sys, 'argv', ['', '{}={}'.format(cmd_arg, expect_module)]
        ):
            settings.setup()

        assert settings._settings_list == [expect_module]
Exemplo n.º 14
0
    def test_dont_overwrite_special_settings_with_environ(self):
        expect_module = 'tests.samples.special'

        settings = LazySettings()
        with patch.object(sys, 'argv', []):
            with patch.dict('os.environ', {SPECIAL_SETTINGS_KEY: expect_module}):
                settings.setup()

        print(settings.as_dict())
        assert isinstance(getattr(settings, SPECIAL_SETTINGS_KEY), dict)
Exemplo n.º 15
0
    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'
Exemplo n.º 16
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
Exemplo n.º 18
0
    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'
Exemplo n.º 19
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'}}
        )
        settings._initialized = False
        settings.setup()

        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'
Exemplo n.º 20
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'
Exemplo n.º 21
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_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'
Exemplo n.º 23
0
    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'
Exemplo n.º 24
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'
Exemplo n.º 26
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'
Exemplo n.º 27
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'
Exemplo n.º 28
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'