def test_parse_file(self): create_file(self.authz_file, """\ [groups] developers = foo, bar users = @developers, &baz [aliases] baz = CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com # Applies to all repositories [/] * = r [/trunk] @developers = rw &baz = @users = r [/branches] bar = rw ; Applies only to module [module:/trunk] foo = rw &baz = r ; Unicode module names [module:/c/résumé] bar = rw ; Unused module, not parsed [unused:/some/path] foo = r """) authz = parse(self.authz_file, {'', 'module'}) self.assertEqual({ '': { u'/': { u'*': True, }, u'/trunk': { u'foo': True, u'bar': True, u'CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com': True, }, u'/branches': { u'bar': True, }, }, u'module': { u'/trunk': { u'foo': True, u'CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com': True, }, u'/c/résumé': { u'bar': True, }, }, }, authz)
def test_parse_file(self): authz = parse("""\ [groups] developers = foo, bar users = @developers, &baz [aliases] baz = CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com # Applies to all repositories [/] * = r [/trunk] @developers = rw &baz = @users = r [/branches] bar = rw ; Applies only to module [module:/trunk] foo = rw &baz = r ; Unicode module names [module:/c/résumé] bar = rw ; Unused module, not parsed [unused:/some/path] foo = r """, set(['', 'module'])) self.assertEqual({ '': { '/': { '*': True, }, '/trunk': { 'foo': True, 'bar': True, u'CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com': False, }, '/branches': { 'bar': True, }, }, 'module': { '/trunk': { 'foo': True, u'CN=Hàröld Hacker,OU=Enginéers,DC=red-bean,DC=com': True, }, u'/c/résumé': { 'bar': True, }, }, }, authz)