aboutsummaryrefslogtreecommitdiff
path: root/gitosis/test/test_access.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitosis/test/test_access.py')
-rw-r--r--gitosis/test/test_access.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/gitosis/test/test_access.py b/gitosis/test/test_access.py
new file mode 100644
index 0000000..00b1fe8
--- /dev/null
+++ b/gitosis/test/test_access.py
@@ -0,0 +1,79 @@
+from nose.tools import eq_ as eq
+
+from ConfigParser import RawConfigParser
+
+from gitosis import access
+
+def test_write_no_simple():
+ cfg = RawConfigParser()
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='writable', path='foo/bar'),
+ None)
+
+def test_write_yes_simple():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'writable', 'foo/bar')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='writable', path='foo/bar'),
+ 'foo/bar')
+
+def test_write_no_simple_wouldHaveReadonly():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'readonly', 'foo/bar')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='writable', path='foo/bar'),
+ None)
+
+def test_write_yes_map():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'map writable foo/bar', 'quux/thud')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='writable', path='foo/bar'),
+ 'quux/thud')
+
+def test_write_no_map_wouldHaveReadonly():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'map readonly foo/bar', 'quux/thud')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='writable', path='foo/bar'),
+ None)
+
+def test_read_no_simple():
+ cfg = RawConfigParser()
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ None)
+
+def test_read_yes_simple():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'readonly', 'foo/bar')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ 'foo/bar')
+
+def test_read_yes_simple_wouldHaveWritable():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'writable', 'foo/bar')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ None)
+
+def test_read_yes_map():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'map readonly foo/bar', 'quux/thud')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ 'quux/thud')
+
+def test_read_yes_map_wouldHaveWritable():
+ cfg = RawConfigParser()
+ cfg.add_section('group fooers')
+ cfg.set('group fooers', 'members', 'jdoe')
+ cfg.set('group fooers', 'map writable foo/bar', 'quux/thud')
+ eq(access.haveAccess(config=cfg, user='jdoe', mode='readonly', path='foo/bar'),
+ None)