From d330a38c84d98b0940487b3334f13894b63dadf5 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Mon, 6 Mar 2017 15:38:28 +0000 Subject: adds a force-push checking scenario --- Makefile | 2 +- testing/03-force-pushing.yarn | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 testing/03-force-pushing.yarn diff --git a/Makefile b/Makefile index c85383a..d7b0614 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ TESTS := 01-basics 02-commands-as 02-commands-config 02-commands-copy \ 02-commands-keyring \ 02-commands-ls 02-commands-rename 02-commands-rsync \ 02-commands-sshkey 02-commands-user 02-commands-whoami 03-cgit-support \ - 03-shallow-push 03-treedelta-rules + 03-shallow-push 03-treedelta-rules 03-force-pushing MODS := gitano \ diff --git a/testing/03-force-pushing.yarn b/testing/03-force-pushing.yarn new file mode 100644 index 0000000..5d8e98a --- /dev/null +++ b/testing/03-force-pushing.yarn @@ -0,0 +1,34 @@ + + +Force Pushing +============= + +The default ruleset of Gitano denies force-pushing to everyone except the +`gitano-admin` group by default; requiring that projects explicitly enable it +if they want it. The theory being that it can be permitted for some branches +but not others, and by deny-by-default, it encourages project owners to think +hard before granting force-push. + + SCENARIO alice cannot force-push by default + + GIVEN a standard instance + AND a unix user called alice + AND alice has keys called main + + WHEN testinstance, using adminkey, adds user alice, using alice main + AND testinstance adminkey runs create testrepo alice + AND alice, using main, clones testrepo as testrepo + THEN alice testrepo has no file called FOO + + WHEN alice applies add-a-FOO.patch in testrepo + AND alice, using main, pushes testrepo to testrepo.git + THEN the output contains new branch + + WHEN alice amends testrepo with oh well never mind + AND alice, using main, expecting failure, pushes testrepo to testrepo.git + THEN the output contains non-fast-forward + + WHEN alice, using main, expecting failure, force-pushes testrepo to testrepo.git + THEN stderr contains denied action + + FINALLY the instance is torn down -- cgit v1.2.1