def test_dufl_init_pulls_remote_if_present(cli_run, temp_folder, remote_git_path): dufl_root = os.path.join(temp_folder, '.dufl') add_content_to_remote_git_repo(remote_git_path, { 'remote_file.txt': 'hello' }) r = cli_run('-r', dufl_root, 'init', remote_git_path) assert os.path.isfile(os.path.join(dufl_root, 'remote_file.txt'))
def test_dufl_init_does_not_overwrite_settings_file_pulled_from_remote(cli_run, temp_folder, remote_git_path): dufl_root = os.path.join(temp_folder, '.dufl') add_content_to_remote_git_repo(remote_git_path, { 'settings.yaml': yaml.dump({ 'git': '/a/very/different/location' }) }) r = cli_run('-r', dufl_root, 'init', remote_git_path) with open(os.path.join(dufl_root, 'settings.yaml')) as f: settings = yaml.load(f.read()) assert settings == {'git': '/a/very/different/location'}
def test_dufl_init_creates_skeleton_folders_when_remote_does_not_include_them(cli_run, temp_folder, remote_git_path): dufl_root = os.path.join(temp_folder, '.dufl') add_content_to_remote_git_repo(remote_git_path, { 'remote_file.txt': 'hello' }) r = cli_run('-r', dufl_root, 'init', remote_git_path) # Check we pulled assert os.path.isfile(os.path.join(dufl_root, 'remote_file.txt')) # And still created the skeletons assert os.path.isdir(os.path.join(dufl_root, 'home')) assert os.path.isdir(os.path.join(dufl_root, 'root')) assert os.path.isfile(os.path.join(dufl_root, 'settings.yaml'))
def test_dufl_init_creates_default_settings_file_when_remote_does_not_include_it(cli_run, temp_folder, remote_git_path): dufl_root = os.path.join(temp_folder, '.dufl') add_content_to_remote_git_repo(remote_git_path, { 'remote_file.txt': 'hello' }) r = cli_run('-r', dufl_root, 'init', remote_git_path) # Check we pulled assert os.path.isfile(os.path.join(dufl_root, 'remote_file.txt')) # Check we created the default settings.yaml with open(os.path.join(dufl_root, 'settings.yaml')) as f: settings = yaml.load(f.read()) for key in defaults.settings: assert settings[key] == defaults.settings[key]