From d248720ff924801d8e3de6291d3b2e512169a3ca Mon Sep 17 00:00:00 2001 From: =?utf8?q?Guido=20G=C3=BCnther?= Date: Fri, 23 Nov 2012 18:26:02 +0100 Subject: [PATCH] Test apply_and_commit_patch --- tests/13_test_gbp_pq.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/data/foo.patch | 12 +++++++++++ 2 files changed, 69 insertions(+) create mode 100644 tests/13_test_gbp_pq.py create mode 100644 tests/data/foo.patch diff --git a/tests/13_test_gbp_pq.py b/tests/13_test_gbp_pq.py new file mode 100644 index 0000000..9fba870 --- /dev/null +++ b/tests/13_test_gbp_pq.py @@ -0,0 +1,57 @@ +# vim: set fileencoding=utf-8 : + +"""Test L{gbp.pq}""" + +import os +import unittest + +import gbp.scripts.common.pq +import gbp.patch_series +import tests.testutils as testutils + +class TestApplyAndCommit(testutils.DebianGitTestRepo): + """Test L{gbp.pq}'s apply_and_commit""" + + def setUp(self): + testutils.DebianGitTestRepo.setUp(self) + self.add_file('bar') + + def test_apply_and_commit_patch(self): + """Test applying a single patch""" + patch = gbp.patch_series.Patch( + os.path.join(os.path.abspath(os.path.curdir), + 'tests/data/foo.patch')) + + gbp.scripts.common.pq.apply_and_commit_patch(self.repo, patch) + self.assertIn('foo', self.repo.list_files()) + + @unittest.skipIf(not os.path.exists('/usr/bin/dpkg'), 'Dpkg not found') + def test_debian_missing_author(self): + """ + Check if we parse the author from debian control + if it's missing. + """ + patch = gbp.patch_series.Patch( + os.path.join(os.path.abspath(os.path.curdir), + 'tests/data/foo.patch')) + + # Overwrite data parsed from patch: + patch.author + patch.info['author'] = None + patch.info['email'] = None + + # Fake a control file + self.add_file("debian/control", + "Maintainer: Guido Günther ") + + gbp.scripts.common.pq.apply_and_commit_patch(self.repo, patch) + info = self.repo.get_commit_info('HEAD') + self.assertEqual(info['author'].email, 'gg@godiug.net') + self.assertIn('foo', self.repo.list_files()) + + + + + + + diff --git a/tests/data/foo.patch b/tests/data/foo.patch new file mode 100644 index 0000000..c4d0b60 --- /dev/null +++ b/tests/data/foo.patch @@ -0,0 +1,12 @@ +From: Guido Günther +Subject: foobar + + foo + +diff --git a/foo b/foo +new file mode 100644 +index 0000000..257cc56 +--- /dev/null ++++ b/foo +@@ -0,0 +1 @@ ++foo -- 2.7.4