|
Pierre-Yves Chibon |
274e60 |
# -*- coding: utf-8 -*-
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
"""
|
|
Pierre-Yves Chibon |
274e60 |
(c) 2017 - Copyright Red Hat Inc
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
Authors:
|
|
Pierre-Yves Chibon |
274e60 |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
"""
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
__requires__ = ['SQLAlchemy >= 0.8']
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
import pkg_resources
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
import datetime
|
|
Pierre-Yves Chibon |
274e60 |
import os
|
|
Pierre-Yves Chibon |
274e60 |
import shutil
|
|
Pierre-Yves Chibon |
274e60 |
import sys
|
|
Pierre-Yves Chibon |
274e60 |
import tempfile
|
|
Pierre-Yves Chibon |
274e60 |
import time
|
|
Pierre-Yves Chibon |
274e60 |
import unittest
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
import pygit2
|
|
Pierre-Yves Chibon |
274e60 |
from mock import patch, MagicMock
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
sys.path.insert(0, os.path.join(os.path.dirname(
|
|
Pierre-Yves Chibon |
274e60 |
os.path.abspath(__file__)), '..'))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
import pagure
|
|
Pierre-Yves Chibon |
274e60 |
import pagure.lib.git
|
|
Pierre-Yves Chibon |
274e60 |
import tests
|
|
Pierre-Yves Chibon |
274e60 |
from pagure.lib.repo import PagureRepo
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
CORE_CONFIG = """repo test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo test2
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/test2
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/test2
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/test2
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou"""
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
class PagureLibGitoliteConfigtests(tests.Modeltests):
|
|
Pierre-Yves Chibon |
274e60 |
""" Tests for pagure.lib.git """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def setUp(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Set up the environnment, ran before every tests. """
|
|
Pierre-Yves Chibon |
274e60 |
super(PagureLibGitoliteConfigtests, self).setUp()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
pagure.lib.git.SESSION = self.session
|
|
Pierre-Yves Chibon |
274e60 |
tests.create_projects(self.session)
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf = os.path.join(self.path, 'test_gitolite.conf')
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
self.preconf = os.path.join(self.path, 'header_gitolite')
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.preconf, 'w') as stream:
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('# this is a header that is manually added\n')
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('\n')
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('@group1 = foo bar baz\n')
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('@group2 = threebean puiterwijk kevin pingou\n')
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
self.postconf = os.path.join(self.path, 'footer_gitolite')
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.postconf, 'w') as stream:
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('# end of generated configuration\n')
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('# \รณ/\n')
|
|
Pierre-Yves Chibon |
274e60 |
stream.write('# end of footer\n')
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def tearDown(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Tearn down the environnment, ran before every tests. """
|
|
Pierre-Yves Chibon |
274e60 |
super(PagureLibGitoliteConfigtests, self).tearDown()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
if os.path.exists(self.outputconf):
|
|
Pierre-Yves Chibon |
274e60 |
os.unlink(self.outputconf)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertFalse(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def test_write_gitolite_pre_post_projectNone(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Test the write_gitolite_acls function of pagure.lib.git with
|
|
Pierre-Yves Chibon |
274e60 |
a postconf set """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
helper = pagure.lib.git_auth.get_git_auth_helper('gitolite3')
|
|
Pierre-Yves Chibon |
274e60 |
helper.write_gitolite_acls(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf,
|
|
Pierre-Yves Chibon |
274e60 |
project=None,
|
|
Pierre-Yves Chibon |
274e60 |
preconf=self.preconf,
|
|
Pierre-Yves Chibon |
274e60 |
postconf=self.postconf
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf) as stream:
|
|
Pierre-Yves Chibon |
274e60 |
data = stream.read()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
exp = """# this is a header that is manually added
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
@group1 = foo bar baz
|
|
Pierre-Yves Chibon |
274e60 |
@group2 = threebean puiterwijk kevin pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
%s
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
# end of generated configuration
|
|
Pierre-Yves Chibon |
274e60 |
# \รณ/
|
|
Pierre-Yves Chibon |
274e60 |
# end of footer
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
""" % CORE_CONFIG
|
|
Pierre-Yves Chibon |
274e60 |
#print data
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(data, exp)
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def test_write_gitolite_pre_post_projectNone(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Test the write_gitolite_acls function of pagure.lib.git with
|
|
Pierre-Yves Chibon |
274e60 |
a postconf set """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf, 'w') as stream:
|
|
Pierre-Yves Chibon |
274e60 |
pass
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
helper = pagure.lib.git_auth.get_git_auth_helper('gitolite3')
|
|
Pierre-Yves Chibon |
274e60 |
helper.write_gitolite_acls(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf,
|
|
Pierre-Yves Chibon |
274e60 |
project=None,
|
|
Pierre-Yves Chibon |
274e60 |
preconf=self.preconf,
|
|
Pierre-Yves Chibon |
274e60 |
postconf=self.postconf
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf) as stream:
|
|
Pierre-Yves Chibon |
274e60 |
data = stream.read()
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(data, '')
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def test_write_gitolite_pre_post_project_1(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Test the write_gitolite_acls function of pagure.lib.git with
|
|
Pierre-Yves Chibon |
274e60 |
a postconf set """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf, 'w') as stream:
|
|
Pierre-Yves Chibon |
274e60 |
pass
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
helper = pagure.lib.git_auth.get_git_auth_helper('gitolite3')
|
|
Pierre-Yves Chibon |
274e60 |
helper.write_gitolite_acls(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf,
|
|
Pierre-Yves Chibon |
274e60 |
project=-1,
|
|
Pierre-Yves Chibon |
274e60 |
preconf=self.preconf,
|
|
Pierre-Yves Chibon |
274e60 |
postconf=self.postconf
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf) as stream:
|
|
Pierre-Yves Chibon |
274e60 |
data = stream.read()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
exp = """# this is a header that is manually added
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
@group1 = foo bar baz
|
|
Pierre-Yves Chibon |
274e60 |
@group2 = threebean puiterwijk kevin pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
%s
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
# end of generated configuration
|
|
Pierre-Yves Chibon |
274e60 |
# \รณ/
|
|
Pierre-Yves Chibon |
274e60 |
# end of footer
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
""" % CORE_CONFIG
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
#print data
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(data, exp)
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def test_write_gitolite_pre_post_project_test(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Test the write_gitolite_acls function of pagure.lib.git with
|
|
Pierre-Yves Chibon |
274e60 |
a postconf set """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf, 'w') as stream:
|
|
Pierre-Yves Chibon |
274e60 |
pass
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
project = pagure.lib._get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
helper = pagure.lib.git_auth.get_git_auth_helper('gitolite3')
|
|
Pierre-Yves Chibon |
274e60 |
helper.write_gitolite_acls(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf,
|
|
Pierre-Yves Chibon |
274e60 |
project=project,
|
|
Pierre-Yves Chibon |
274e60 |
preconf=self.preconf,
|
|
Pierre-Yves Chibon |
274e60 |
postconf=self.postconf
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf) as stream:
|
|
Pierre-Yves Chibon |
274e60 |
data = stream.read()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
exp = """# this is a header that is manually added
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
@group1 = foo bar baz
|
|
Pierre-Yves Chibon |
274e60 |
@group2 = threebean puiterwijk kevin pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
# end of generated configuration
|
|
Pierre-Yves Chibon |
274e60 |
# \รณ/
|
|
Pierre-Yves Chibon |
274e60 |
# end of footer
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
"""
|
|
Pierre-Yves Chibon |
274e60 |
#print data
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(data, exp)
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
def test_write_gitolite_pre_post_project_test_full_file(self):
|
|
Pierre-Yves Chibon |
274e60 |
""" Test the write_gitolite_acls function of pagure.lib.git with
|
|
Pierre-Yves Chibon |
274e60 |
a postconf set """
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
# Re-generate the gitolite config for all the projects
|
|
Pierre-Yves Chibon |
274e60 |
self.test_write_gitolite_pre_post_project_1()
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
project = pagure.lib._get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
274e60 |
project.user_id = 2
|
|
Pierre-Yves Chibon |
274e60 |
self.session.add(project)
|
|
Pierre-Yves Chibon |
274e60 |
self.session.commit()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
project = pagure.lib._get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
274e60 |
msg = pagure.lib.add_user_to_project(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
project=project,
|
|
Pierre-Yves Chibon |
274e60 |
new_user='pingou',
|
|
Pierre-Yves Chibon |
274e60 |
user='foo',
|
|
Pierre-Yves Chibon |
274e60 |
access='commit'
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(msg, 'User added')
|
|
Pierre-Yves Chibon |
274e60 |
self.session.commit()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
project = pagure.lib._get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
274e60 |
helper = pagure.lib.git_auth.get_git_auth_helper('gitolite3')
|
|
Pierre-Yves Chibon |
274e60 |
helper.write_gitolite_acls(
|
|
Pierre-Yves Chibon |
274e60 |
self.session,
|
|
Pierre-Yves Chibon |
274e60 |
self.outputconf,
|
|
Pierre-Yves Chibon |
274e60 |
project=project,
|
|
Pierre-Yves Chibon |
274e60 |
preconf=self.preconf,
|
|
Pierre-Yves Chibon |
274e60 |
postconf=self.postconf
|
|
Pierre-Yves Chibon |
274e60 |
)
|
|
Pierre-Yves Chibon |
274e60 |
self.assertTrue(os.path.exists(self.outputconf))
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
with open(self.outputconf) as stream:
|
|
Pierre-Yves Chibon |
274e60 |
data = stream.read()
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
exp = """# this is a header that is manually added
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
@group1 = foo bar baz
|
|
Pierre-Yves Chibon |
274e60 |
@group2 = threebean puiterwijk kevin pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo test2
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/test2
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/test2
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/test2
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/somenamespace/test3
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = foo
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo docs/test
|
|
Pierre-Yves Chibon |
274e60 |
R = @all
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = foo
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo tickets/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = foo
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
repo requests/test
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = foo
|
|
Pierre-Yves Chibon |
274e60 |
RW+ = pingou
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
# end of generated configuration
|
|
Pierre-Yves Chibon |
274e60 |
# \รณ/
|
|
Pierre-Yves Chibon |
274e60 |
# end of footer
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
"""
|
|
Pierre-Yves Chibon |
274e60 |
#print data
|
|
Pierre-Yves Chibon |
274e60 |
self.assertEqual(data, exp)
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
|
|
Pierre-Yves Chibon |
274e60 |
if __name__ == '__main__':
|
|
Pierre-Yves Chibon |
274e60 |
unittest.main(verbosity=2)
|