Ejemplo n.º 1
0
 def test_ref_path_container_error(self):
     parent = Config(Schema(key='root'))
     child = Config(Schema(key='child'), parent=parent)
     child._container = MagicMock()
     child._container._get_item_position = MagicMock(
         side_effect=ValueError())
     assert child._ref_path == 'root.child'
Ejemplo n.º 2
0
    def test_load_expanduser(self, expanduser, mop):
        expanduser.return_value = 'path/to/blah.txt'
        config = Config(Schema())

        config.load('~/blah.txt', format='json')
        expanduser.assert_called_once_with('~/blah.txt')
        mop.assert_called_once_with('path/to/blah.txt', 'rb')
Ejemplo n.º 3
0
    def test_save(self, dumps, mop):
        dumps.return_value = b'hello'
        config = Config(Schema())
        config.save('blah.txt', format='blah')

        dumps.assert_called_once_with('blah')
        mop.assert_called_once_with('blah.txt', 'wb')
        mop().write.assert_called_once_with(b'hello')
Ejemplo n.º 4
0
    def test_load(self, loads, mop):
        loads.return_value = {'x': 1}
        config = Config(Schema())
        object.__setattr__(config, 'loads', loads)

        assert config.load('blah.txt', format='blah') == {'x': 1}
        loads.assert_called_once_with(b'hello', 'blah')
        mop.assert_called_once_with('blah.txt', 'rb')
Ejemplo n.º 5
0
 def test_ref_path_container(self):
     parent = Config(Schema(key='root'))
     child = Config(Schema(key='child'), parent=parent)
     child._container = MagicMock()
     child._container._get_item_position = MagicMock()
     child._container._get_item_position.return_value = '1'
     assert child._ref_path == 'root.child[1]'
     child._container._get_item_position.assert_called_once_with(child)
Ejemplo n.º 6
0
    def test_loads(self, fr_get):
        fmt = MockFormatter()
        load_tree = MagicMock()
        fr_get.return_value = fmt
        config = Config(Schema())
        object.__setattr__(config, 'load_tree', load_tree)

        config.loads('hello', format='blah')
        config.load_tree.assert_called_once_with({'x': 1})
        fmt.loads.assert_called_once_with(config, b'hello')
        fr_get.assert_called_once_with('blah')
Ejemplo n.º 7
0
 def test_set_default_str(self, create_mock):
     create_mock.return_value = 'hello'
     field = ChallengeField('md5', default='default', key='test')
     cfg = Config(Schema())
     field.__setdefault__(cfg)
     create_mock.assert_called_with('default', hashlib.md5)
     assert cfg._data['test'] == 'hello'
Ejemplo n.º 8
0
 def test_setdefault_env_exists(self, mock_environ_get):
     retval = mock_environ_get.return_value = object()
     cfg = Config(schema=Schema())
     field = Field(env='ASDF', key='field')
     field.__setdefault__(cfg)
     assert cfg._data == {'field': retval}
     mock_environ_get.assert_called_once_with('ASDF')
Ejemplo n.º 9
0
 def test_setdefault_env_exists_valid(self, mock_environ_get):
     env = mock_environ_get.return_value = object()
     retval = object()
     cfg = Config(schema=Schema())
     field = Field(env='ASDF', key='field')
     field.validate = MagicMock(return_value=retval)
     field.__setdefault__(cfg)
     field.validate.assert_called_once_with(cfg, env)
     assert cfg._data == {'field': retval}
Ejemplo n.º 10
0
    def test_setdefault_env_exists_invalid(self, mock_environ_get):
        env = mock_environ_get.return_value = object()
        retval = object()
        cfg = Config(schema=Schema())
        field = Field(env='ASDF', key='field')
        field.validate = MagicMock(side_effect=ValueError())
        field._default = retval
        with pytest.raises(ValidationError):
            field.__setdefault__(cfg)

        field.validate.assert_called_once_with(cfg, env)
Ejemplo n.º 11
0
    def test_setdefault_env_exists_invalid_validationerror(self, mock_environ_get):
        env = mock_environ_get.return_value = object()
        retval = object()
        cfg = Config(schema=Schema())
        field = Field(env='ASDF', key='field')
        err = ValidationError(cfg, field, ValueError('asdf'))
        field.validate = MagicMock(side_effect=err)
        field._default = retval
        with pytest.raises(ValidationError) as exc:
            field.__setdefault__(cfg)

        assert exc.value is err
Ejemplo n.º 12
0
 def test_ref_path(self):
     parent = Config(Schema(key='root'))
     child = Config(Schema(key='child'), parent=parent)
     assert child._ref_path == 'root.child'
Ejemplo n.º 13
0
 def test_add_field_dynamic(self):
     schema = Schema(dynamic=True)
     config = Config(schema)
     assert config._set_value('hello', 'world') == 'world'
     assert config._data['hello'] == 'world'
     assert isinstance(config._fields['hello'], AnyField)
Ejemplo n.º 14
0
 def test_ref_path_no_parent(self):
     cfg = Config(Schema(key='child', schema=Schema(key='root')))
     assert cfg._ref_path == "root.child"
Ejemplo n.º 15
0
 def test_set_default_none(self):
     cfg = Config(Schema())
     field = ChallengeField('md5', key='test')
     field.__setdefault__(cfg)
     assert cfg._data['test'] is None
Ejemplo n.º 16
0
    def test_add_field_failed(self):
        schema = Schema()
        config = Config(schema)

        with pytest.raises(AttributeError):
            config._set_value('hello', 'world')
Ejemplo n.º 17
0
    def test_get_field_base(self):
        schema = Schema()
        field = schema._fields['hello'] = Field()
        config = Config(schema)

        assert config._get_field('hello') is field
Ejemplo n.º 18
0
 def test_set_default_tuple(self):
     sdt = DigestValue.create('hello', hashlib.md5)
     field = ChallengeField('md5', key='test', default=sdt)
     cfg = Config(Schema())
     field.__setdefault__(cfg)
     assert cfg._data['test'] is sdt
Ejemplo n.º 19
0
 def test_keyfile_parent(self):
     parent = Config(Schema(), key_filename='asdf.txt')
     child = Config(Schema(), parent)
     assert child._keyfile is parent._keyfile
Ejemplo n.º 20
0
 def test_keyfile_default(self):
     parent = Config(Schema())
     child = Config(Schema(), parent)
     assert child._keyfile is parent._keyfile
     assert child._keyfile.filename == '/path/to/cincokey'
Ejemplo n.º 21
0
 def test_keyfile_set(self):
     parent = Config(Schema(), key_filename='asdf.txt')
     child = Config(Schema(), parent, key_filename='qwer.txt')
     assert child._keyfile is not parent._keyfile
Ejemplo n.º 22
0
 def test_key_filename_set_none(self):
     parent = Config(Schema(), key_filename='asdf.txt')
     child = Config(Schema(), parent, key_filename='qwer.txt')
     child._key_filename = None
     assert child._key_filename == 'asdf.txt'
     assert parent._key_filename == 'asdf.txt'
Ejemplo n.º 23
0
 def test_key_filename_none_ctor(self):
     cfg = Config(Schema())
     assert cfg._key_filename is Config.DEFAULT_CINCOKEY_FILEPATH
Ejemplo n.º 24
0
 def test_get_field_dynamic(self):
     schema = Schema()
     config = Config(schema)
     config._fields['hello'] = 'world'
     assert config._get_field('hello') == 'world'
Ejemplo n.º 25
0
 def test_key_filename_ctor(self):
     cfg = Config(Schema(), key_filename='asdf.txt')
     assert cfg._key_filename == 'asdf.txt'
     assert cfg._Config__keyfile.filename == 'asdf.txt'