def test_to_tree(self): schema = Schema(dynamic=True) schema.x = Field(default=2) schema.blah.y = Field(default=3) config = schema() config.z = 4 assert config.to_tree() == {'x': 2, 'blah': {'y': 3}, 'z': 4}
def test_setdefault(self): schema = Schema() field = Field() field.__setdefault__ = MagicMock() schema.x = field config = schema() field.__setdefault__.assert_called_once_with(config)
def test_setattr_value(self): schema = Schema() field = Field() field.__setval__ = MagicMock() schema.x = field config = schema() config.x = 2 field.__setval__.assert_called_once_with(config, 2)
def test_iter(self): schema = Schema(dynamic=True) schema.x = Field(default=2) schema.blah.y = Field(default=3) config = schema() config.z = 4 items = sorted(list(config.__iter__()), key=lambda x: x[0]) assert items == [('blah', config.blah), ('x', 2), ('z', 4)]
def test_setattr_config_no_dict(self): schema = Schema() schema.blah.x = Field() config = schema() with pytest.raises(TypeError): config.blah = 2
def test_setattr_config_dict(self): schema = Schema() schema.blah.x = Field() config = schema() config.blah = {'x': 2} assert config.blah.x == 2
def test_load_tree_validate(self): schema = Schema() schema.x = Field() config = schema() mock_validate = MagicMock() object.__setattr__(config, 'validate', mock_validate) config.load_tree({'x': 1}) mock_validate.assert_called_once_with()
def test_cmdline_args_ocverride_single_ignore(self): parser = argparse.ArgumentParser() schema = Schema() schema.w = Field(default='w') schema.x = Field(default='x') schema.y.z = Field(default='z') config = schema() parser.add_argument('-x', action='store') parser.add_argument('-z', action='store', dest='y.z') parser.add_argument('-i', action='store') parser.add_argument('-j', action='store') args = parser.parse_args(['-x', '1', '-z', '2', '-j', '3']) config.cmdline_args_override(args, ignore='j') assert config.x == '1' assert config.y.z == '2' assert config.w == 'w'
def test_validate(self): schema = Schema() schema.x.y = Field() config = schema() mock = MagicMock() object.__setattr__(schema.x, '_validate', mock) config.validate() mock.assert_called_once_with(config.x)
def test_set_config(self): schema = Schema() schema.x.y = Field() config = schema() sub = schema.x() sub.y = 10 config.x = sub assert sub._parent is config assert config.x is sub
def test_dumps(self, fr_get): fmt = MockFormatter() fr_get.return_value = fmt schema = Schema() schema.x = Field(default=2) config = schema() msg = config.dumps(format='blah') assert msg == b'hello, world' fmt.dumps.assert_called_once_with(config, {'x': 2}) fr_get.assert_called_once_with('blah')
def test_validator(self): validator = MagicMock() schema = Schema() schema.x = Field() @schema.validator def validate(cfg): validator(cfg) config = schema() config.validate() validator.assert_called_once_with(config)
def test_getitem(self): schema = Schema() schema.x = Field(default=2) config = schema() assert config['x'] == 2
def test_setitem(self): schema = Schema() schema.x = Field() config = schema() config['x'] = 2 assert config._data['x'] == 2