def test_cleanup_calls_rm(): m = mock.Mock() r = RepoManager(executor=m, tools=[None]) r.to_cleanup = {'repo': '/tmp/a_dir'} r.cleanup() assert m.called_with('rm -rf /tmp/a_dir')
def test_clone_adds_to_cleanup_dict(): m = mock.Mock() r = RepoManager(cache_directory="/weeble/wobble/", executor=m, tools=[None]) r.clone_repo(repo_name, None) directory = r.clone_dir(repo_name) assert directory in r.to_cleanup[repo_name]
def test_pulls_remote_changes_if_remote(): finder = re.compile(r'git pull --all') m = mock.Mock() r = RepoManager(cache_directory="/fooz", executor=m, tools=[None]) r.clone_repo(repo_name, Remote("name", "url")) assert len(calls_matching_re(m, finder)) == 1, "Didn't pull updates"
def test_adds_remote_if_pr_is_remote(): finder = re.compile(r'git remote add name url') m = mock.Mock() r = RepoManager(cache_directory="/fooz", executor=m, tools=[None]) r.clone_repo(repo_name, Remote("name", "url")) assert len(calls_matching_re(m, finder)) == 1, "Remote not added"
def test_clones_if_no_existing_repo(): finder = re.compile(r'git clone') m = mock.Mock() r = RepoManager(cache_directory="/fooz", executor=m, tools=[None]) r.clone_repo(repo_name, None) assert len(calls_matching_re(m, finder)) == 1, "Didn't git clone"
def test_updates_if_existing_repo(): finder = re.compile(r'git clone') m = mock.Mock() r = RepoManager(cache_directory="/fooz", executor=m, tools=[None]) with mock.patch('os.path.isdir') as isdir: isdir.return_value = True r.clone_repo(repo_name, None) assert len(calls_matching_re(m, finder)) == 0, "Shouldn't git clone"
def test_find_config(): r = RepoManager(cache_directory="/weeble/wobble/", tools=[None]) dirname = r.clone_dir(repo_name) assert len(find_config(dirname, list())) == 0
def test_clone_dir_cached(): r = RepoManager(cache_directory="/weeble/wobble/", tools=[None]) val = r.clone_dir(repo_name) assert val.startswith('/weeble/wobble/justinabrahms__imhotep')
def test_clone_dir_nocache(): # TODO(justinabrahms): this test has side effects which generate temp # dirs. Need to fix that. r = RepoManager(tools=[None]) val = r.clone_dir(repo_name) assert '/tmp' in val
def test_cleanup_doesnt_call_without_clean_files(): m = mock.Mock() r = RepoManager(executor=m, tools=[None]) r.cleanup() assert not m.called
def test_unauthencticated_repo(): r = RepoManager(tools=[None]) assert Repository == r.get_repo_class()
def test_authencticated_repo(): r = RepoManager(authenticated=True, tools=[None]) assert AuthenticatedRepository == r.get_repo_class()