def test_ensure_file_directory(mkdir, tmpdir): a = {'x': 1, 'y': {'a': 1}} source = os.path.join(str(tmpdir), 'source.yaml') dest = os.path.join(str(tmpdir), 'dest') with open(source, 'w') as f: yaml.dump(a, f) if mkdir: os.mkdir(dest) config = Config(CONFIG_NAME) config.ensure_file(source=source, destination=dest) assert os.path.isdir(dest) assert os.path.exists(os.path.join(dest, 'source.yaml'))
def test_ensure_file_defaults_to_TEST_CONFIG_directory(tmpdir): a = {'x': 1, 'y': {'a': 1}} source = os.path.join(str(tmpdir), 'source.yaml') with open(source, 'w') as f: yaml.dump(a, f) config = Config('test') destination = os.path.join(str(tmpdir), 'test') PATH = config.main_path try: config.main_path = destination config.ensure_file(source=source) finally: config.main_path = PATH assert os.path.isdir(destination) [fn] = os.listdir(destination) assert os.path.split(fn)[1] == os.path.split(source)[1]
def test_ensure_file(tmpdir): a = {'x': 1, 'y': {'a': 1}} b = {'x': 123} source = os.path.join(str(tmpdir), 'source.yaml') dest = os.path.join(str(tmpdir), 'dest') destination = os.path.join(dest, 'source.yaml') with open(source, 'w') as f: yaml.dump(a, f) config = Config(CONFIG_NAME) config.ensure_file(source=source, destination=dest, comment=False) with open(destination) as f: result = yaml.safe_load(f) assert result == a # don't overwrite old config files with open(source, 'w') as f: yaml.dump(b, f) config.ensure_file(source=source, destination=dest, comment=False) with open(destination) as f: result = yaml.safe_load(f) assert result == a os.remove(destination) # Write again, now with comments config.ensure_file(source=source, destination=dest, comment=True) with open(destination) as f: text = f.read() assert '123' in text with open(destination) as f: result = yaml.safe_load(f) assert not result