diff options
-rw-r--r-- | gbp/patch_series.py | 22 | ||||
-rw-r--r-- | tests/08_test_patch.py | 11 | ||||
-rw-r--r-- | tests/08_test_patch_data/916545.patch | 5 |
3 files changed, 29 insertions, 9 deletions
diff --git a/gbp/patch_series.py b/gbp/patch_series.py index ef373a83..c47f4b6e 100644 --- a/gbp/patch_series.py +++ b/gbp/patch_series.py @@ -83,15 +83,19 @@ class Patch(object): break toparse.append(line) - out, err, ret = GitRepository.git_inout(command='mailinfo', - args=['-k', body.name, '/dev/null'], - input=b''.join(toparse), - extra_env=None, - cwd=None, - capture_stderr=True) - if ret != 0: - raise GbpError("Failed to read patch header of '%s': %s" % - (self.path, err)) + input = b''.join(toparse) + if input.strip(): + out, err, ret = GitRepository.git_inout(command='mailinfo', + args=['-k', body.name, '/dev/null'], + input=input, + extra_env=None, + cwd=None, + capture_stderr=True) + if ret != 0: + raise GbpError("Failed to read patch header of '%s': %s" % + (self.path, err)) + else: + out = b'' # Header for line in out.decode().split('\n'): diff --git a/tests/08_test_patch.py b/tests/08_test_patch.py index 1567f018..9fe7f7fd 100644 --- a/tests/08_test_patch.py +++ b/tests/08_test_patch.py @@ -126,3 +126,14 @@ reproducible build Author: Alexis Bienvenüe <pado@passoire.fr> """, p.long_desc) + + +class TestMarkerOnly(unittest.TestCase): + data_dir = os.path.splitext(__file__)[0] + '_data' + + def test_parse(self): + """Don't fail on empty patch header""" + patchfile = os.path.join(self.data_dir, "916545.patch") + self.assertTrue(os.path.exists(patchfile)) + p = Dep3Patch(patchfile) + self.assertEqual("916545", p.subject) diff --git a/tests/08_test_patch_data/916545.patch b/tests/08_test_patch_data/916545.patch new file mode 100644 index 00000000..46029550 --- /dev/null +++ b/tests/08_test_patch_data/916545.patch @@ -0,0 +1,5 @@ +--- +--- /dev/null ++++ b/foo +@@ -0,0 +1,1 @@ ++foo |