aboutsummaryrefslogtreecommitdiff
path: root/gitosis/test/test_group.py
blob: 9ea035aae3147d132389c99924acfd7eb49f19cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
from nose.tools import eq_ as eqassert_raises
 
from ConfigParser import RawConfigParser
 
from gitosis import group
 
def test_no_emptyConfig():
    cfg = RawConfigParser()
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_no_emptyGroup():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_no_notListed():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_simple():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_leading():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''jdoe wsmith')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_trailing():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_middle():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith jdoe danny')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_recurse_one():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith @smackers')
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''danny jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'smackers')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_recurse_one_ordering():
    cfg = RawConfigParser()
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''danny jdoe')
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith @smackers')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'smackers')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_recurse_three():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''wsmith @smackers')
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''danny @snackers')
    cfg.add_section('group snackers')
    cfg.set('group snackers''members''@whackers foo')
    cfg.add_section('group whackers')
    cfg.set('group whackers''members''jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'whackers')
    eq(gen.next()'snackers')
    eq(gen.next()'smackers')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_recurse_junk():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''@notexist @smackers')
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'smackers')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_yes_recurse_loop():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''@smackers')
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''@hackers jdoe')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'smackers')
    eq(gen.next()'hackers')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)
 
def test_no_recurse_loop():
    cfg = RawConfigParser()
    cfg.add_section('group hackers')
    cfg.set('group hackers''members''@smackers')
    cfg.add_section('group smackers')
    cfg.set('group smackers''members''@hackers')
    gen = group.getMembership(config=cfg, user='jdoe')
    eq(gen.next()'all')
    assert_raises(StopIterationgen.next)