From c45a4cfd29e36df8d9a019877e5af4721fdc66bc Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 22 Aug 2018 20:32:18 +0300 Subject: Add support for author-* request manifest values in submit-git handler --- tests/submit/0f6b1460b3ec/request.manifest | 3 +- tests/submit/submit-git.test | 136 ++++++++++++++++++++++++----- 2 files changed, 114 insertions(+), 25 deletions(-) (limited to 'tests') diff --git a/tests/submit/0f6b1460b3ec/request.manifest b/tests/submit/0f6b1460b3ec/request.manifest index 1173210..a5ecde8 100644 --- a/tests/submit/0f6b1460b3ec/request.manifest +++ b/tests/submit/0f6b1460b3ec/request.manifest @@ -6,5 +6,6 @@ client-ip: fe80::56e1:adff:fe83:82f5 user-agent: bdep/0.8.0-a.0.20180815130917 (GNU/Linux; +https://build2.org)\ libbpkg/0.8.0-a.0.0f50af28d1cf libbutl/0.8.0-a.0.3e0db12932d5 curl section: alpha -email: user@example.org +author-name: User Name +author-email: user@example.org control: http://example.org/hello.git diff --git a/tests/submit/submit-git.test b/tests/submit/submit-git.test index 20745ed..a64e9a1 100644 --- a/tests/submit/submit-git.test +++ b/tests/submit/submit-git.test @@ -86,13 +86,17 @@ pkg_ctl="$prj_ctl/hello.git" : ownership is successfully aquired. Authentication is enabled on both the : reference and target repos. : + : Note that here we also test that --commiter-* options are picked up + : properly. + : { $clone_root_data; $clone_root_tgt; tgt_url = "file:///$~/tgt.git"; - $* "$tgt_url" $root_ref_dir $data_dir >>"EOO"; + $* --committer-name 'Commiter' --committer-email 'commiter@example.com' \ + "$tgt_url" $root_ref_dir $data_dir >>"EOO"; : 1 status: 200 message: libhello/0.1.0 submission is queued @@ -109,7 +113,8 @@ pkg_ctl="$prj_ctl/hello.git" cat tgt/owners/hello/project-owner.manifest >>~%EOO%; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org %control: file:///.+% %.* EOO @@ -117,16 +122,17 @@ pkg_ctl="$prj_ctl/hello.git" cat tgt/owners/hello/libhello/package-owner.manifest >>~%EOO%; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org %control: file:///.+% %.* EOO test -f tgt/1/alpha/hello/libhello-0.1.0.tar.gz; - git -C tgt log -1 >>~%EOO% + git -C tgt log -1 >>~%EOO%; %commit .+% - %Author: Submission Handler % + %Author: User Name % %Date: .+% Add libhello/0.1.0 to 1/alpha/hello @@ -139,11 +145,17 @@ pkg_ctl="$prj_ctl/hello.git" % user-agent: bdep/.+% %. section: alpha - email: user@example.org + author-name: User Name + author-email: user@example.org % control: file:///.+% %.* EOO + + git -C tgt log -1 "--pretty=format:%an %ae %cn %ce" >>:EOO + User Name user@example.org Commiter commiter@example.com + EOO } + : ref-disabled-tgt-aquire-prj-pkg : : Test that on the first package submit the project and package names @@ -210,14 +222,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=tgt/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI cat <<"EOI" >=tgt/owners/hello/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $pkg_ctl EOI @@ -239,8 +253,11 @@ pkg_ctl="$prj_ctl/hello.git" : repository and the package ownersip is authenticated by the target : repository. : + : Note that here we also test an author-less submission. + : { $clone_root_data; + sed -i -e "s%^author-.+\$%%" $data_dir/request.manifest; $clone_root_ref; $g clone ref.git &ref/***; @@ -250,7 +267,8 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI @@ -266,7 +284,8 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=tgt/owners/hello/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $pkg_ctl EOI @@ -274,12 +293,20 @@ pkg_ctl="$prj_ctl/hello.git" $g -C tgt commit -m 'Add ownership info'; $g -C tgt push; - $* "file:///$~/tgt.git" ref $data_dir >>"EOO" + $* "file:///$~/tgt.git" ref $data_dir >>"EOO"; : 1 status: 200 message: libhello/0.1.0 submission is queued reference: $checksum EOO + + # Check that the author/committer names/emails are properly assigned. + # + $g -C tgt pull; + + git -C tgt log -1 "--pretty=format:%an %ae %cn %ce" >>:EOO + Submission Handler noreply@example.com Submission Handler noreply@example.com + EOO } : ref-auth-prj-pkg @@ -301,14 +328,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $regex.replace("$prj_ctl", '(.*/)[^/]*', '\1') EOI cat <<"EOI" >=ref/owners/hello/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $pkg_ctl EOI @@ -342,7 +371,8 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI @@ -423,6 +453,54 @@ pkg_ctl="$prj_ctl/hello.git" : failure : { + : no-author + : + { + $clone_root_data_clean; + sed -i -e "s%^author-.+\$%%" $data_dir/request.manifest; + + $clone_root_tgt; + tgt_url = "file:///$~/tgt.git"; + + $* "$tgt_url" $root_ref_dir $data_dir >>"EOO" + : 1 + status: 400 + message: author-name manifest value expected + EOO + } + + : no-author-email + : + { + $clone_root_data_clean; + sed -i -e "s%^author-email.+\$%%" $data_dir/request.manifest; + + $clone_root_tgt; + tgt_url = "file:///$~/tgt.git"; + + $* "$tgt_url" $root_ref_dir $data_dir >>"EOO" + : 1 + status: 400 + message: author-email manifest value expected + EOO + } + + : no-author-name + : + { + $clone_root_data_clean; + sed -i -e "s%^author-name.+\$%%" $data_dir/request.manifest; + + $clone_root_tgt; + tgt_url = "file:///$~/tgt.git"; + + $* "$tgt_url" $root_ref_dir $data_dir >>"EOO" + : 1 + status: 400 + message: author-name manifest value expected + EOO + } + : ref-dup-pkg : : Test the duplicate submission due presence of the package archive in the @@ -464,14 +542,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hi/project-owner.manifest; : 1 name: hi - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI cat <<"EOI" >=ref/owners/hi/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/foo EOI @@ -501,7 +581,8 @@ pkg_ctl="$prj_ctl/hello.git" cat <=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: https://example.com/foo EOI @@ -532,14 +613,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI cat <<"EOI" >=ref/owners/hello/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/foo EOI @@ -594,14 +677,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=tgt/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI cat <<"EOI" >=tgt/owners/hello/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/foo EOI @@ -663,7 +748,8 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=ref/owners/hello/project-owner.manifest; : 1 name: hello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI @@ -708,14 +794,16 @@ pkg_ctl="$prj_ctl/hello.git" cat <<"EOI" >=tgt/owners/hi/project-owner.manifest; : 1 name: hi - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/ EOI cat <<"EOI" >=tgt/owners/hi/libhello/package-owner.manifest; : 1 name: libhello - email: user@example.org + author-name: User Name + author-email: user@example.org control: $prj_ctl/foo EOI -- cgit v1.1