From 53016921be103ae1e906b09bb840d3f0c7fcca0f Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Mon, 26 Feb 2018 15:08:05 +0100 Subject: Move rollback code out of import_orig so it can be reused in gbp import-ref --- tests/24_test_gbp_import_orig.py | 50 ++---------------------------- tests/test_RollbackDebianGitRepository.py | 51 +++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 47 deletions(-) create mode 100644 tests/test_RollbackDebianGitRepository.py (limited to 'tests') diff --git a/tests/24_test_gbp_import_orig.py b/tests/24_test_gbp_import_orig.py index 419ac403..fadff28e 100644 --- a/tests/24_test_gbp_import_orig.py +++ b/tests/24_test_gbp_import_orig.py @@ -1,5 +1,5 @@ # vim: set fileencoding=utf-8 : -"""Test L{gbp.command_wrappers.Command}'s tarball unpack""" +"""Test L{gbp.scripts.import_orig}""" import os import unittest @@ -8,62 +8,18 @@ from collections import namedtuple from gbp.scripts.import_orig import (debian_branch_merge_by_replace, GbpError, - ImportOrigDebianGitRepository, is_30_quilt) from gbp.scripts.common.import_orig import download_orig from . testutils import DebianGitTestRepo -class TestImportOrigGitRepository(DebianGitTestRepo): - - def setUp(self): - DebianGitTestRepo.setUp(self, ImportOrigDebianGitRepository) - - def test_empty_rollback(self): - self.repo.rollback() - self.assertEquals(self.repo.rollback_errors, []) - - def test_rrr_tag(self): - self.repo.rrr_tag('doesnotexist') - self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'tag', 'delete', None)]) - self.repo.rollback() - self.assertEquals(self.repo.rollback_errors, []) - - def test_rrr_branch(self): - self.repo.rrr_branch('doesnotexist', 'delete') - self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'branch', 'delete', None)]) - self.repo.rollback() - self.assertEquals(self.repo.rollback_errors, []) - - def test_rrr_merge(self): - self.repo.rrr_merge('HEAD') - self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)]) - self.repo.rollback() - self.assertEquals(self.repo.rollback_errors, []) - - def test_rrr_merge_abort(self): - self.repo.rrr_merge('HEAD') - self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)]) - # Test that we abort the merge in case MERGE_HEAD exists - with open(os.path.join(self.repo.git_dir, 'MERGE_HEAD'), 'w'): - pass - self.assertTrue(self.repo.is_in_merge()) - self.repo.rollback() - self.assertFalse(self.repo.is_in_merge()) - self.assertEquals(self.repo.rollback_errors, []) - - def test_rrr_unknown_action(self): - with self.assertRaisesRegexp(GbpError, "Unknown action unknown for tag doesnotmatter"): - self.repo.rrr('doesnotmatter', 'unknown', 'tag') - - @unittest.skipUnless(os.getenv("GBP_NETWORK_TESTS"), "network tests disabled") class TestImportOrigDownload(DebianGitTestRepo): HOST = 'git.sigxcpu.org' def setUp(self): - DebianGitTestRepo.setUp(self, ImportOrigDebianGitRepository) - os.chdir(self.repodir) + DebianGitTestRepo.setUp(self) + os.chdir(self.repo.path) def test_404_download(self): with self.assertRaisesRegexp(GbpError, "404 Client Error: Not Found for url"): diff --git a/tests/test_RollbackDebianGitRepository.py b/tests/test_RollbackDebianGitRepository.py new file mode 100644 index 00000000..1c23d525 --- /dev/null +++ b/tests/test_RollbackDebianGitRepository.py @@ -0,0 +1,51 @@ +# vim: set fileencoding=utf-8 : +"""Test L{gbp.deb.rollbackgit}""" + +import os + +from . testutils import DebianGitTestRepo +from gbp.deb.rollbackgit import RollbackDebianGitRepository +from gbp.git.repository import GitRepositoryError + + +class TestRollbackGitRepository(DebianGitTestRepo): + + def setUp(self): + DebianGitTestRepo.setUp(self, RollbackDebianGitRepository) + + def test_empty_rollback(self): + self.repo.rollback() + self.assertEquals(self.repo.rollback_errors, []) + + def test_rrr_tag(self): + self.repo.rrr_tag('doesnotexist') + self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'tag', 'delete', None)]) + self.repo.rollback() + self.assertEquals(self.repo.rollback_errors, []) + + def test_rrr_branch(self): + self.repo.rrr_branch('doesnotexist', 'delete') + self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'branch', 'delete', None)]) + self.repo.rollback() + self.assertEquals(self.repo.rollback_errors, []) + + def test_rrr_merge(self): + self.repo.rrr_merge('HEAD') + self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)]) + self.repo.rollback() + self.assertEquals(self.repo.rollback_errors, []) + + def test_rrr_merge_abort(self): + self.repo.rrr_merge('HEAD') + self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)]) + # Test that we abort the merge in case MERGE_HEAD exists + with open(os.path.join(self.repo.git_dir, 'MERGE_HEAD'), 'w'): + pass + self.assertTrue(self.repo.is_in_merge()) + self.repo.rollback() + self.assertFalse(self.repo.is_in_merge()) + self.assertEquals(self.repo.rollback_errors, []) + + def test_rrr_unknown_action(self): + with self.assertRaisesRegexp(GitRepositoryError, "Unknown action unknown for tag doesnotmatter"): + self.repo.rrr('doesnotmatter', 'unknown', 'tag') -- cgit v1.2.3