def test_has_changes(self): tmp_repo = self._create_tmp_repo() self.assertFalse(git.has_changes(tmp_repo)) new_files = self._create_tmp_files(tmp_repo) self.assertFalse(git.has_changes(tmp_repo)) git.add(tmp_repo, new_files) self.assertTrue(git.has_changes(tmp_repo)) git.commit(tmp_repo, 'nomsg\n', '.') self.assertFalse(git.has_changes(tmp_repo))
def test_add(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) expected_status = [ git_status(git_status_action.ADDED, f, None) for f in new_files ] actual_status = git.status(tmp_repo, '.') self.assertEqual(expected_status, actual_status)
def test_tag_allow_downgrade_error(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') git.tag(tmp_repo, '1.0.100') self.assertEqual('1.0.100', git.greatest_local_tag(tmp_repo).name) with self.assertRaises(ValueError) as ctx: git.tag(tmp_repo, '1.0.99')
def test_tag_allow_downgrade(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') git.tag(tmp_repo, '1.0.100') self.assertEqual('1.0.100', git.greatest_local_tag(tmp_repo).name) git.tag(tmp_repo, '1.0.99', allow_downgrade=True) self.assertEqual('1.0.100', git.greatest_local_tag(tmp_repo).name) self.assertEqual(['1.0.99', '1.0.100'], git.list_local_tags(tmp_repo).names())
def _apply_operation_copy(self, try_git): file_util.copy(self.src, self.dst) file_util.copy_mode(self.src, self.dst) if try_git: root_dir = git.find_root_dir(start_dir=path.dirname(self.dst)) should_ignore = git.check_ignore(root_dir, self.src) if not should_ignore: try: git.add(root_dir, [self.dst]) except git_error as ex: print(f'caught: {ex}')
def test_archive_local_repo(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') tmp_archive = self.make_temp_file() git.archive(tmp_repo, 'master', 'foo', tmp_archive) self.assertEqual([ 'foo-master/', 'foo-master/bar.txt', 'foo-master/foo.txt', ], archiver.members(tmp_archive))
def test_clone_or_pull(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') cloned_tmp_repo = self.make_temp_dir() git.clone(tmp_repo, cloned_tmp_repo) expected_cloned_files = [ path.join(cloned_tmp_repo, path.basename(f)) for f in new_files ] for f in expected_cloned_files: self.assertTrue(path.exists(f))
def test_archive_local_repo_untracked(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') file_util.save(path.join(tmp_repo, 'kiwi.txt'), content='this is kiwi.txt\n') tmp_archive = self.make_temp_file() git.archive(tmp_repo, 'master', 'foo', tmp_archive, untracked=True) self.assertEqual([ 'foo-master/', 'foo-master/bar.txt', 'foo-master/foo.txt', 'foo-master/kiwi.txt', ], archiver.members(tmp_archive))
def test_read_gitignore(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') self.assertEqual(None, git.read_gitignore(tmp_repo)) file_util.save(path.join(tmp_repo, '.gitignore'), content='foo.txt\nbar.txt\nBUILD\n*~\n') git.add(tmp_repo, '.gitignore') git.commit(tmp_repo, 'add .gitignore\n', '.') self.assertEqual([ 'foo.txt', 'bar.txt', 'BUILD', '*~', ], git.read_gitignore(tmp_repo))
def test_tag(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') git.tag(tmp_repo, '1.0.0') self.assertEqual(['1.0.0'], git.list_local_tags(tmp_repo).names()) git.tag(tmp_repo, '1.0.1') self.assertEqual(['1.0.0', '1.0.1'], git.list_local_tags(tmp_repo).names()) git.tag(tmp_repo, '1.0.9') git.tag(tmp_repo, '1.0.10') self.assertEqual(['1.0.0', '1.0.1', '1.0.9', '1.0.10'], git.list_local_tags(tmp_repo).names()) self.assertEqual('1.0.10', git.greatest_local_tag(tmp_repo).name) self.assertEqual(['1.0.0', '1.0.1', '1.0.10', '1.0.9'], git.list_local_tags(tmp_repo, sort_type='lexical').names()) self.assertEqual(['1.0.10', '1.0.9', '1.0.1', '1.0.0'], git.list_local_tags(tmp_repo, reverse=True).names())
def test_delete_local_tag(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.') git.tag(tmp_repo, '1.0.0') git.tag(tmp_repo, '1.0.1') git.tag(tmp_repo, '1.0.9') git.tag(tmp_repo, '1.0.10') self.assertEqual(['1.0.0', '1.0.1', '1.0.9', '1.0.10'], git.list_local_tags(tmp_repo).names()) git.delete_local_tag(tmp_repo, '1.0.9') self.assertEqual(['1.0.0', '1.0.1', '1.0.10'], git.list_local_tags(tmp_repo).names()) git.delete_local_tag(tmp_repo, '1.0.0') self.assertEqual(['1.0.1', '1.0.10'], git.list_local_tags(tmp_repo).names()) git.delete_local_tag(tmp_repo, '1.0.10') self.assertEqual(['1.0.1'], git.list_local_tags(tmp_repo).names()) git.delete_local_tag(tmp_repo, '1.0.1') self.assertEqual([], git.list_local_tags(tmp_repo).names())
def test_commit(self): tmp_repo = self._create_tmp_repo() new_files = self._create_tmp_files(tmp_repo) git.add(tmp_repo, new_files) git.commit(tmp_repo, 'nomsg\n', '.')