[PATCH 3 of 3] Added tests for asterisk and for OS-level groups

elifarley at gmail.com elifarley at gmail.com
Wed Apr 28 09:23:45 CDT 2010


 tests/test-acl     |   47 +++++++
 tests/test-acl.out |  322 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 369 insertions(+), 0 deletions(-)


# HG changeset patch
# User Elifarley Callado Coelho Cruz <elifarley at gmail.com>
# Date 1272463858 10800
# Node ID f778e9a29e2fded4208c2d76688103ac81aa281c
# Parent  b337c7f1a841eb1d545163d5c8751710f1c34dda
Added tests for asterisk and for OS-level groups.

diff --git a/tests/test-acl b/tests/test-acl
--- a/tests/test-acl
+++ b/tests/test-acl
@@ -24,6 +24,15 @@
     echo
 }
 
+init_config()
+{
+rm -f acl.config
+echo '[hooks]' > $config
+echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
+echo '[acl]' >> $config
+echo 'sources = push' >> $config
+}
+
 hg init a
 cd a
 mkdir foo foo/Bar quux
@@ -111,3 +120,41 @@
 echo 'changegroup.acl = false' >> acl.config
 do_push barney
 
+# asterisk
+
+init_config
+
+echo 'asterisk test'
+echo '[acl.allow]' >> $config
+echo "** = fred" >> $config
+echo "fred is always allowed"
+do_push fred
+
+echo '[acl.deny]' >> $config
+echo "foo/Bar/** = *" >> $config
+echo "no one is allowed inside foo/Bar/"
+do_push fred
+
+# Groups
+
+G1=_test-acl-g1
+
+groupadd $G1 || exit 1
+useradd -M -N -s /dev/null $G1-u1 || exit 1
+gpasswd -a $G1-u1 $G1
+
+init_config
+
+echo 'OS-level groups'
+echo '[acl.allow]' >> $config
+echo "** = @$G1" >> $config
+echo "@$G1 is always allowed"
+do_push $G1-u1
+
+echo '[acl.deny]' >> $config
+echo "foo/Bar/** = @$G1" >> $config
+echo "@$G1 is allowed inside anything but foo/Bar/"
+do_push $G1-u1
+
+userdel $G1-u1 || exit 1
+groupdel $G1 || exit 1
\ No newline at end of file
diff --git a/tests/test-acl.out b/tests/test-acl.out
--- a/tests/test-acl.out
+++ b/tests/test-acl.out
@@ -1163,3 +1163,325 @@
 rolling back to revision 1 (undo push)
 0:6675d58eff77
 
+asterisk test
+fred is always allowed
+Pushing as user fred
+hgrc = """
+[acl]
+sources = push
+[acl.allow]
+** = fred
+"""
+pushing to ../b
+searching for changes
+common changesets up to 6675d58eff77
+invalidating branch cache (tip differs)
+3 changesets found
+list of changesets:
+ef1ea85a6374b77d6da9dcda9541f498f2d17df7
+f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
+911600dab2ae7a9baff75958b84fe606851ce955
+adding changesets
+bundling changes: 0 chunks
+bundling changes: 1 chunks
+bundling changes: 2 chunks
+bundling changes: 3 chunks
+bundling changes: 4 chunks
+bundling changes: 5 chunks
+bundling changes: 6 chunks
+bundling changes: 7 chunks
+bundling changes: 8 chunks
+bundling changes: 9 chunks
+bundling manifests: 0 chunks
+bundling manifests: 1 chunks
+bundling manifests: 2 chunks
+bundling manifests: 3 chunks
+bundling manifests: 4 chunks
+bundling manifests: 5 chunks
+bundling manifests: 6 chunks
+bundling manifests: 7 chunks
+bundling manifests: 8 chunks
+bundling manifests: 9 chunks
+bundling files: foo/Bar/file.txt 0 chunks
+bundling files: foo/Bar/file.txt 1 chunks
+bundling files: foo/Bar/file.txt 2 chunks
+bundling files: foo/Bar/file.txt 3 chunks
+bundling files: foo/file.txt 4 chunks
+bundling files: foo/file.txt 5 chunks
+bundling files: foo/file.txt 6 chunks
+bundling files: foo/file.txt 7 chunks
+bundling files: quux/file.py 8 chunks
+bundling files: quux/file.py 9 chunks
+bundling files: quux/file.py 10 chunks
+bundling files: quux/file.py 11 chunks
+changesets: 1 chunks
+add changeset ef1ea85a6374
+changesets: 2 chunks
+add changeset f9cafe1212c8
+changesets: 3 chunks
+add changeset 911600dab2ae
+adding manifests
+manifests: 1/3 chunks (33.33%)
+manifests: 2/3 chunks (66.67%)
+manifests: 3/3 chunks (100.00%)
+adding file changes
+adding foo/Bar/file.txt revisions
+files: 1/3 chunks (33.33%)
+adding foo/file.txt revisions
+files: 2/3 chunks (66.67%)
+adding quux/file.py revisions
+files: 3/3 chunks (100.00%)
+added 3 changesets with 3 changes to 3 files
+calling hook pretxnchangegroup.acl: hgext.acl.hook
+acl: acl.allow enabled, 1 entries for user fred
+acl: acl.deny not enabled
+acl: allowing changeset ef1ea85a6374
+acl: allowing changeset f9cafe1212c8
+acl: allowing changeset 911600dab2ae
+updating the branch cache
+rolling back to revision 1 (undo push)
+0:6675d58eff77
+
+no one is allowed inside foo/Bar/
+Pushing as user fred
+hgrc = """
+[acl]
+sources = push
+[acl.allow]
+** = fred
+[acl.deny]
+foo/Bar/** = *
+"""
+pushing to ../b
+searching for changes
+common changesets up to 6675d58eff77
+invalidating branch cache (tip differs)
+3 changesets found
+list of changesets:
+ef1ea85a6374b77d6da9dcda9541f498f2d17df7
+f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
+911600dab2ae7a9baff75958b84fe606851ce955
+adding changesets
+bundling changes: 0 chunks
+bundling changes: 1 chunks
+bundling changes: 2 chunks
+bundling changes: 3 chunks
+bundling changes: 4 chunks
+bundling changes: 5 chunks
+bundling changes: 6 chunks
+bundling changes: 7 chunks
+bundling changes: 8 chunks
+bundling changes: 9 chunks
+bundling manifests: 0 chunks
+bundling manifests: 1 chunks
+bundling manifests: 2 chunks
+bundling manifests: 3 chunks
+bundling manifests: 4 chunks
+bundling manifests: 5 chunks
+bundling manifests: 6 chunks
+bundling manifests: 7 chunks
+bundling manifests: 8 chunks
+bundling manifests: 9 chunks
+bundling files: foo/Bar/file.txt 0 chunks
+bundling files: foo/Bar/file.txt 1 chunks
+bundling files: foo/Bar/file.txt 2 chunks
+bundling files: foo/Bar/file.txt 3 chunks
+bundling files: foo/file.txt 4 chunks
+bundling files: foo/file.txt 5 chunks
+bundling files: foo/file.txt 6 chunks
+bundling files: foo/file.txt 7 chunks
+bundling files: quux/file.py 8 chunks
+bundling files: quux/file.py 9 chunks
+bundling files: quux/file.py 10 chunks
+bundling files: quux/file.py 11 chunks
+changesets: 1 chunks
+add changeset ef1ea85a6374
+changesets: 2 chunks
+add changeset f9cafe1212c8
+changesets: 3 chunks
+add changeset 911600dab2ae
+adding manifests
+manifests: 1/3 chunks (33.33%)
+manifests: 2/3 chunks (66.67%)
+manifests: 3/3 chunks (100.00%)
+adding file changes
+adding foo/Bar/file.txt revisions
+files: 1/3 chunks (33.33%)
+adding foo/file.txt revisions
+files: 2/3 chunks (66.67%)
+adding quux/file.py revisions
+files: 3/3 chunks (100.00%)
+added 3 changesets with 3 changes to 3 files
+calling hook pretxnchangegroup.acl: hgext.acl.hook
+acl: acl.allow enabled, 1 entries for user fred
+acl: acl.deny enabled, 1 entries for user fred
+acl: allowing changeset ef1ea85a6374
+acl: user fred denied on foo/Bar/file.txt
+error: pretxnchangegroup.acl hook failed: acl: access denied for changeset f9cafe1212c8
+transaction abort!
+rollback completed
+abort: acl: access denied for changeset f9cafe1212c8
+no rollback information available
+0:6675d58eff77
+
+Adding user _test-acl-g1-u1 to group _test-acl-g1
+OS-level groups
+ at _test-acl-g1 is always allowed
+Pushing as user _test-acl-g1-u1
+hgrc = """
+[acl]
+sources = push
+[acl.allow]
+** = @_test-acl-g1
+"""
+pushing to ../b
+searching for changes
+common changesets up to 6675d58eff77
+3 changesets found
+list of changesets:
+ef1ea85a6374b77d6da9dcda9541f498f2d17df7
+f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
+911600dab2ae7a9baff75958b84fe606851ce955
+adding changesets
+bundling changes: 0 chunks
+bundling changes: 1 chunks
+bundling changes: 2 chunks
+bundling changes: 3 chunks
+bundling changes: 4 chunks
+bundling changes: 5 chunks
+bundling changes: 6 chunks
+bundling changes: 7 chunks
+bundling changes: 8 chunks
+bundling changes: 9 chunks
+bundling manifests: 0 chunks
+bundling manifests: 1 chunks
+bundling manifests: 2 chunks
+bundling manifests: 3 chunks
+bundling manifests: 4 chunks
+bundling manifests: 5 chunks
+bundling manifests: 6 chunks
+bundling manifests: 7 chunks
+bundling manifests: 8 chunks
+bundling manifests: 9 chunks
+bundling files: foo/Bar/file.txt 0 chunks
+bundling files: foo/Bar/file.txt 1 chunks
+bundling files: foo/Bar/file.txt 2 chunks
+bundling files: foo/Bar/file.txt 3 chunks
+bundling files: foo/file.txt 4 chunks
+bundling files: foo/file.txt 5 chunks
+bundling files: foo/file.txt 6 chunks
+bundling files: foo/file.txt 7 chunks
+bundling files: quux/file.py 8 chunks
+bundling files: quux/file.py 9 chunks
+bundling files: quux/file.py 10 chunks
+bundling files: quux/file.py 11 chunks
+changesets: 1 chunks
+add changeset ef1ea85a6374
+changesets: 2 chunks
+add changeset f9cafe1212c8
+changesets: 3 chunks
+add changeset 911600dab2ae
+adding manifests
+manifests: 1/3 chunks (33.33%)
+manifests: 2/3 chunks (66.67%)
+manifests: 3/3 chunks (100.00%)
+adding file changes
+adding foo/Bar/file.txt revisions
+files: 1/3 chunks (33.33%)
+adding foo/file.txt revisions
+files: 2/3 chunks (66.67%)
+adding quux/file.py revisions
+files: 3/3 chunks (100.00%)
+added 3 changesets with 3 changes to 3 files
+calling hook pretxnchangegroup.acl: hgext.acl.hook
+acl: acl.allow enabled, 1 entries for user _test-acl-g1-u1
+acl: acl.deny not enabled
+acl: allowing changeset ef1ea85a6374
+acl: allowing changeset f9cafe1212c8
+acl: allowing changeset 911600dab2ae
+updating the branch cache
+rolling back to revision 1 (undo push)
+0:6675d58eff77
+
+ at _test-acl-g1 is allowed inside anything but foo/Bar/
+Pushing as user _test-acl-g1-u1
+hgrc = """
+[acl]
+sources = push
+[acl.allow]
+** = @_test-acl-g1
+[acl.deny]
+foo/Bar/** = @_test-acl-g1
+"""
+pushing to ../b
+searching for changes
+common changesets up to 6675d58eff77
+invalidating branch cache (tip differs)
+3 changesets found
+list of changesets:
+ef1ea85a6374b77d6da9dcda9541f498f2d17df7
+f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
+911600dab2ae7a9baff75958b84fe606851ce955
+adding changesets
+bundling changes: 0 chunks
+bundling changes: 1 chunks
+bundling changes: 2 chunks
+bundling changes: 3 chunks
+bundling changes: 4 chunks
+bundling changes: 5 chunks
+bundling changes: 6 chunks
+bundling changes: 7 chunks
+bundling changes: 8 chunks
+bundling changes: 9 chunks
+bundling manifests: 0 chunks
+bundling manifests: 1 chunks
+bundling manifests: 2 chunks
+bundling manifests: 3 chunks
+bundling manifests: 4 chunks
+bundling manifests: 5 chunks
+bundling manifests: 6 chunks
+bundling manifests: 7 chunks
+bundling manifests: 8 chunks
+bundling manifests: 9 chunks
+bundling files: foo/Bar/file.txt 0 chunks
+bundling files: foo/Bar/file.txt 1 chunks
+bundling files: foo/Bar/file.txt 2 chunks
+bundling files: foo/Bar/file.txt 3 chunks
+bundling files: foo/file.txt 4 chunks
+bundling files: foo/file.txt 5 chunks
+bundling files: foo/file.txt 6 chunks
+bundling files: foo/file.txt 7 chunks
+bundling files: quux/file.py 8 chunks
+bundling files: quux/file.py 9 chunks
+bundling files: quux/file.py 10 chunks
+bundling files: quux/file.py 11 chunks
+changesets: 1 chunks
+add changeset ef1ea85a6374
+changesets: 2 chunks
+add changeset f9cafe1212c8
+changesets: 3 chunks
+add changeset 911600dab2ae
+adding manifests
+manifests: 1/3 chunks (33.33%)
+manifests: 2/3 chunks (66.67%)
+manifests: 3/3 chunks (100.00%)
+adding file changes
+adding foo/Bar/file.txt revisions
+files: 1/3 chunks (33.33%)
+adding foo/file.txt revisions
+files: 2/3 chunks (66.67%)
+adding quux/file.py revisions
+files: 3/3 chunks (100.00%)
+added 3 changesets with 3 changes to 3 files
+calling hook pretxnchangegroup.acl: hgext.acl.hook
+acl: acl.allow enabled, 1 entries for user _test-acl-g1-u1
+acl: acl.deny enabled, 1 entries for user _test-acl-g1-u1
+acl: allowing changeset ef1ea85a6374
+acl: user _test-acl-g1-u1 denied on foo/Bar/file.txt
+error: pretxnchangegroup.acl hook failed: acl: access denied for changeset f9cafe1212c8
+transaction abort!
+rollback completed
+abort: acl: access denied for changeset f9cafe1212c8
+no rollback information available
+0:6675d58eff77
+


More information about the Mercurial-devel mailing list