def test_load_from_filename_fails_load_strategy(tmpdir): f = tmpdir.join('foo.notjson') f.write('totes not json') with pytest.raises(Error) as excinfo: load_from_filename(f.strpath, map_required, json.loads, Error) # ANY is json's error message expected = ('File {}'.format(f.strpath), mock.ANY) _assert_exception_trace(excinfo.value.args[0], expected)
def test_load_from_filename_validation_error(tmpdir): f = tmpdir.join('foo.json') f.write('{}') with pytest.raises(Error) as excinfo: load_from_filename(f.strpath, map_required, json.loads, Error) expected = ( 'File {}'.format(f.strpath), 'At foo(key=MISSING)', 'Missing required key: key', ) _assert_exception_trace(excinfo.value.args[0], expected)
def main(argv: Sequence[str] | None = None) -> int: parser = argparse.ArgumentParser() parser.add_argument('filenames', nargs='*') args = parser.parse_args(argv) retv = 0 for filename in args.filenames: try: cfgv.load_from_filename( filename, schema=SCHEMA, load_strategy=yaml_load, ) except cfgv.ValidationError as e: print(str(e).strip()) retv = 1 return retv
def test_load_from_filename_applies_defaults(tmpdir): f = tmpdir.join('foo.json') f.write('{}') ret = load_from_filename(f.strpath, map_optional, json.loads, Error) assert ret == {'key': False}
def test_load_from_filename_file_does_not_exist(): with pytest.raises(Error) as excinfo: load_from_filename('does_not_exist', map_required, json.loads, Error) assert excinfo.value.args[0].error_msg == 'does_not_exist does not exist'