def test_load_save_data(): """Test saving data and then loading it again. Also, KeyErrors are expected if required keys are missing. """ def assert_required_keys(data, should_raise=False): with LoadSaveContext(data) as filename: if should_raise: raises(KeyError, 'load_data(filename)') else: load_data(filename) # Assure that missing keys raise a ``KeyError``. required_keys = frozenset(['nicknames', 'relations', 'directed']) for key in required_keys: keys = set(required_keys) keys.remove(key) assert_required_keys(dict.fromkeys(keys), True) assert_required_keys({'nicknames': None}, True) assert_required_keys(dict.fromkeys(required_keys), False) # Assure the exact data saved will be loaded afterwards. data = { 'nicknames': 123, 'relations': 456, 'directed': True, } with LoadSaveContext(data) as filename: assert load_data(filename) == (123, 456, True)
def main(): args = parse_args() nicknames, relations, directed = load_data(args.input_filename) dot = generate_dot(nicknames, relations, args.output_filename_prefix, args.format, program=args.program, directed=directed) write_file(dot)
def assert_required_keys(data, should_raise=False): with LoadSaveContext(data) as filename: if should_raise: raises(KeyError, 'load_data(filename)') else: load_data(filename)