import pytest import checkpackagelib.test_util as util import checkpackagelib.lib_patch as m ApplyOrder = [ ('standard', # catches https://bugs.busybox.net/show_bug.cgi?id=11271 '0001-description.patch', '', []), ('standard with path', 'path/0001-description.patch', '', []), ('acceptable format', '1-description.patch', '', []), ('acceptable format with path', 'path/1-description.patch', '', []), ('old format', 'package-0001-description.patch', '', [['package-0001-description.patch:0: use name -.patch (url#_providing_patches)']]), ('old format with path', 'path/package-0001-description.patch', '', [['path/package-0001-description.patch:0: use name -.patch (url#_providing_patches)']]), ('missing number', 'description.patch', '', [['description.patch:0: use name -.patch (url#_providing_patches)']]), ('missing number with path', 'path/description.patch', '', [['path/description.patch:0: use name -.patch (url#_providing_patches)']]), ] @pytest.mark.parametrize('testname,filename,string,expected', ApplyOrder) def test_ApplyOrder(testname, filename, string, expected): warnings = util.check_file(m.ApplyOrder, filename, string) assert warnings == expected NumberedSubject = [ ('no subject', 'patch', '', []), ('acceptable because it is not a git patch', 'patch', 'Subject: [PATCH 24/105] text\n', []), ('good', 'patch', 'Subject: [PATCH] text\n' 'diff --git a/configure.ac b/configure.ac\n', []), ('bad', 'patch', 'Subject: [PATCH 24/105] text\n' 'diff --git a/configure.ac b/configure.ac\n', [["patch:1: generate your patches with 'git format-patch -N'", 'Subject: [PATCH 24/105] text\n']]), ] @pytest.mark.parametrize('testname,filename,string,expected', NumberedSubject) def test_NumberedSubject(testname, filename, string, expected): warnings = util.check_file(m.NumberedSubject, filename, string) assert warnings == expected Sob = [ ('good', 'patch', 'Signed-off-by: John Doe \n', []), ('empty', 'patch', '', [['patch:0: missing Signed-off-by in the header (url#_format_and_licensing_of_the_package_patches)']]), ('bad', 'patch', 'Subject: [PATCH 24/105] text\n', [['patch:0: missing Signed-off-by in the header (url#_format_and_licensing_of_the_package_patches)']]), ] @pytest.mark.parametrize('testname,filename,string,expected', Sob) def test_Sob(testname, filename, string, expected): warnings = util.check_file(m.Sob, filename, string) assert warnings == expected Upstream = [ ('good', 'patch', 'Upstream: https://some/amazing/patch/submission\n', []), ('empty', 'patch', '', [['patch:0: missing Upstream in the header (url#_additional_patch_documentation)']]), ('bad', 'patch', 'Subject: [PATCH 24/105] text\n', [['patch:0: missing Upstream in the header (url#_additional_patch_documentation)']]), ] @pytest.mark.parametrize('testname,filename,string,expected', Upstream) def test_Upstream(testname, filename, string, expected): warnings = util.check_file(m.Upstream, filename, string) assert warnings == expected