aboutsummaryrefslogtreecommitdiff
path: root/gitosis/test/test_group.py
diff options
context:
space:
mode:
authorTommi Virtanen <tv@eagain.net>2007-05-30 13:57:31 +0300
committerTommi Virtanen <tv@eagain.net>2007-06-04 14:16:26 +0300
commitbd1ee4fc013f169f1c052dc763c3e9ed602502c9 (patch)
tree04e054b5fe52efb1e801c4098d44bcc9359433d0 /gitosis/test/test_group.py
downloadgitosis-dakkar-bd1ee4fc013f169f1c052dc763c3e9ed602502c9.tar.gz
gitosis-dakkar-bd1ee4fc013f169f1c052dc763c3e9ed602502c9.tar.bz2
gitosis-dakkar-bd1ee4fc013f169f1c052dc763c3e9ed602502c9.zip
Initial import.
Diffstat (limited to 'gitosis/test/test_group.py')
-rw-r--r--gitosis/test/test_group.py125
1 files changed, 125 insertions, 0 deletions
diff --git a/gitosis/test/test_group.py b/gitosis/test/test_group.py
new file mode 100644
index 0000000..c282661
--- /dev/null
+++ b/gitosis/test/test_group.py
@@ -0,0 +1,125 @@
+from nose.tools import eq_ as eq, assert_raises
+
+from ConfigParser import RawConfigParser
+
+from gitosis import group
+
+def test_no_emptyConfig():
+ cfg = RawConfigParser()
+ gen = group.getMembership(config=cfg, user='jdoe')
+ assert_raises(StopIteration, gen.next)
+
+def test_no_emptyGroup():
+ cfg = RawConfigParser()
+ cfg.add_section('group hackers')
+ gen = group.getMembership(config=cfg, user='jdoe')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.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')
+ assert_raises(StopIteration, gen.next)