tests/test-acl
author Brodie Rao <brodie@bitheap.org>
Fri, 10 Sep 2010 09:30:50 -0500
branchstable
changeset 12252 4481f8a93c7a
parent 11461 2b83c26b29f3
permissions -rwxr-xr-x
convert/darcs: handle non-ASCII metadata in darcs changelog (issue2354) Given a commit author or message with non-ASCII characters in a darcs repo, convert would raise a UnicodeEncodeError when adding changesets to the hg changelog. This happened because etree returns back unicode objects for any text it can't encode into ASCII. convert was passing these objects to changelog.add(), which would then attempt encoding.fromlocal() on them. This patch ensures converter_source.recode() is called on each piece of commit data returned by etree. (Also note that darcs is currently encoding agnostic and will print out whatever is in a patch's metadata byte-for-byte, even in the XML changelog.)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     1
#!/bin/sh
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     2
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     3
do_push()
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     4
{
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     5
    user=$1
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     6
    shift
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     7
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     8
    echo "Pushing as user $user"
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     9
    echo 'hgrc = """'
11139
f2c6b9819a6d test-acl: avoid $HGTMP on windows
Patrick Mezard <pmezard@gmail.com>
parents: 11114
diff changeset
    10
    sed -e 1,2d b/.hg/hgrc | grep -v fakegroups.py
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    11
    echo '"""'
3469
33b6c8193652 Don't use test -e in tests - sh doesn't like it on Solaris
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3436
diff changeset
    12
    if test -f acl.config; then
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    13
	echo 'acl.config = """'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    14
	cat acl.config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    15
	echo '"""'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    16
    fi
7512
0d488f7f321d Fix test-acl failure on AIX due to read only LOGNAME.
Jim Hague <jim.hague@acm.org>
parents: 4138
diff changeset
    17
    # On AIX /etc/profile sets LOGNAME read-only. So
0d488f7f321d Fix test-acl failure on AIX due to read only LOGNAME.
Jim Hague <jim.hague@acm.org>
parents: 4138
diff changeset
    18
    #  LOGNAME=$user hg --cws a --debug push ../b
0d488f7f321d Fix test-acl failure on AIX due to read only LOGNAME.
Jim Hague <jim.hague@acm.org>
parents: 4138
diff changeset
    19
    # fails with "This variable is read only."
0d488f7f321d Fix test-acl failure on AIX due to read only LOGNAME.
Jim Hague <jim.hague@acm.org>
parents: 4138
diff changeset
    20
    # Use env to work around this.
0d488f7f321d Fix test-acl failure on AIX due to read only LOGNAME.
Jim Hague <jim.hague@acm.org>
parents: 4138
diff changeset
    21
    env LOGNAME=$user hg --cwd a --debug push ../b
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    22
    hg --cwd b rollback
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    23
    hg --cwd b --quiet tip
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    24
    echo
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    25
}
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    26
11043
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    27
init_config()
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    28
{
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    29
cat > fakegroups.py <<EOF
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    30
from hgext import acl
11114
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    31
def fakegetusers(ui, group):
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    32
    try:
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    33
        return acl._getusersorig(ui, group)
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    34
    except:
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    35
        return ["fred", "betty"]
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    36
acl._getusersorig = acl._getusers
62714143742f acl: support for group definitions in section [acl.groups], which take precedence over OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 11055
diff changeset
    37
acl._getusers = fakegetusers
11043
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    38
EOF
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    39
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    40
rm -f acl.config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    41
cat > $config <<EOF
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    42
[hooks]
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    43
pretxnchangegroup.acl = python:hgext.acl.hook
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    44
[acl]
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    45
sources = push
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    46
[extensions]
11461
2b83c26b29f3 test-acl: don't use $PWD
Mads Kiilerich <mads@kiilerich.com>
parents: 11140
diff changeset
    47
f=`pwd`/fakegroups.py
11043
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    48
EOF
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    49
}
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
    50
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    51
hg init a
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    52
cd a
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    53
mkdir foo foo/Bar quux
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    54
echo 'in foo' > foo/file.txt
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    55
echo 'in foo/Bar' > foo/Bar/file.txt
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    56
echo 'in quux' > quux/file.py
4138
85237110c371 make test-acl a bit more digestable for windows
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3469
diff changeset
    57
hg add -q
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    58
hg ci -m 'add files' -d '1000000 0'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    59
echo >> foo/file.txt
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    60
hg ci -m 'change foo/file' -d '1000001 0'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    61
echo >> foo/Bar/file.txt
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    62
hg ci -m 'change foo/Bar/file' -d '1000002 0'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    63
echo >> quux/file.py
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    64
hg ci -m 'change quux/file' -d '1000003 0'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    65
hg tip --quiet
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    66
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    67
cd ..
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    68
hg clone -r 0 a b
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    69
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    70
echo '[extensions]' >> $HGRCPATH
10119
bb5ea66789e3 tests: load with "ext =" instead of "hgext.ext ="
Martin Geisler <mg@lazybytes.net>
parents: 7512
diff changeset
    71
echo 'acl =' >> $HGRCPATH
3426
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    72
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    73
config=b/.hg/hgrc
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    74
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    75
echo
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    76
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    77
echo 'Extension disabled for lack of a hook'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    78
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    79
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    80
echo '[hooks]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    81
echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    82
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    83
echo 'Extension disabled for lack of acl.sources'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    84
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    85
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    86
echo 'No [acl.allow]/[acl.deny]'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    87
echo '[acl]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    88
echo 'sources = push' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    89
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    90
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    91
echo 'Empty [acl.allow]'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    92
echo '[acl.allow]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    93
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    94
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    95
echo 'fred is allowed inside foo/'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    96
echo 'foo/** = fred' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    97
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    98
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    99
echo 'Empty [acl.deny]'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   100
echo '[acl.deny]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   101
do_push barney
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   102
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   103
echo 'fred is allowed inside foo/, but not foo/bar/ (case matters)'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   104
echo 'foo/bar/** = fred' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   105
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   106
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   107
echo 'fred is allowed inside foo/, but not foo/Bar/'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   108
echo 'foo/Bar/** = fred' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   109
do_push fred
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   110
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   111
echo 'barney is not mentioned => not allowed anywhere'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   112
do_push barney
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   113
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   114
echo 'barney is allowed everywhere'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   115
echo '[acl.allow]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   116
echo '** = barney' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   117
do_push barney
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   118
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   119
echo 'wilma can change files with a .txt extension'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   120
echo '**/*.txt = wilma' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   121
do_push wilma
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   122
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   123
echo 'file specified by acl.config does not exist'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   124
echo '[acl]' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   125
echo 'config = ../acl.config' >> $config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   126
do_push barney
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   127
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   128
echo 'betty is allowed inside foo/ by a acl.config file'
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   129
echo '[acl.allow]' >> acl.config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   130
echo 'foo/** = betty' >> acl.config
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   131
do_push betty
bb00a5a92c30 Add a test for the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   132
3436
f29989e9746e use ui.readsections in the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3426
diff changeset
   133
echo 'acl.config can set only [acl.allow]/[acl.deny]'
f29989e9746e use ui.readsections in the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3426
diff changeset
   134
echo '[hooks]' >> acl.config
f29989e9746e use ui.readsections in the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3426
diff changeset
   135
echo 'changegroup.acl = false' >> acl.config
f29989e9746e use ui.readsections in the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3426
diff changeset
   136
do_push barney
f29989e9746e use ui.readsections in the acl extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3426
diff changeset
   137
11043
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   138
# asterisk
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   139
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   140
init_config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   141
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   142
echo 'asterisk test'
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   143
echo '[acl.allow]' >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   144
echo "** = fred" >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   145
echo "fred is always allowed"
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   146
do_push fred
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   147
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   148
echo '[acl.deny]' >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   149
echo "foo/Bar/** = *" >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   150
echo "no one is allowed inside foo/Bar/"
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   151
do_push fred
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   152
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   153
# Groups
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   154
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   155
init_config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   156
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   157
echo 'OS-level groups'
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   158
echo '[acl.allow]' >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   159
echo "** = @group1" >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   160
echo "@group1 is always allowed"
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   161
do_push fred
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   162
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   163
echo '[acl.deny]' >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   164
echo "foo/Bar/** = @group1" >> $config
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   165
echo "@group is allowed inside anything but foo/Bar/"
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   166
do_push fred
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   167
11140
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   168
echo 'Invalid group'
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   169
# Disable the fakegroups trick to get real failures
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   170
grep -v fakegroups $config > config.tmp
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   171
mv config.tmp $config
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   172
echo '[acl.allow]' >> $config
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   173
echo "** = @unlikelytoexist" >> $config
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   174
do_push fred 2>&1 | grep unlikelytoexist
11043
08681cb66231 acl: add tests for asterisk and for OS-level groups
Elifarley Callado Coelho Cruz <elifarley@gmail.com>
parents: 10119
diff changeset
   175
11140
1f26cf0a3663 acl: improve undefined group error handling
Patrick Mezard <pmezard@gmail.com>
parents: 11139
diff changeset
   176
true