本文整理汇总了Python中repo.Repo.replace方法的典型用法代码示例。如果您正苦于以下问题:Python Repo.replace方法的具体用法?Python Repo.replace怎么用?Python Repo.replace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类repo.Repo
的用法示例。
在下文中一共展示了Repo.replace方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_it_should_replace_a_given_string_in_repo_conf
# 需要导入模块: from repo import Repo [as 别名]
# 或者: from repo.Repo import replace [as 别名]
def test_it_should_replace_a_given_string_in_repo_conf(self):
mocked_re = MagicMock()
path = 'tests/fixtures/config.conf'
mocked_re.sub.return_value = 'another_text'
with patch.multiple('repo', re=mocked_re):
repo = Repo(path)
repo.replace('pattern', 'string')
with open('tests/fixtures/config.conf') as f:
eq_(f.read(), 'another_text')
mocked_re.sub.assert_called_once_with('pattern', 'string',
'another_text')
示例2: ListUsers
# 需要导入模块: from repo import Repo [as 别名]
# 或者: from repo.Repo import replace [as 别名]
class ListUsers(object):
def __init__(self, repository):
self.repository_model = repository
self.repo = Repo(Path(repository.path,
"conf/repos/%s.conf" % repository.name))
def with_user(func):
def decorated(self, string_user, *args, **kwargs):
try:
user = User.get(string_user, self.repository_model.path,
self.repository_model.git)
except ValueError:
user = User(self.repository_model.path, self.repository_model.git,
string_user)
return func(self, user, *args, **kwargs)
return decorated
@with_user
def add(self, user, permission):
if user.name in self.repo.users:
raise ValueError('User %s already exists. Please check '
'example/repository.py in order to see how you can '
'delete or change permissions' % user.name)
if set(map(lambda permission: permission.upper(), permission)) - \
ACCEPTED_PERMISSIONS != set([]):
raise ValueError('Invalid permissions. They must be from %s' %
ACCEPTED_PERMISSIONS)
self.repo.write(" %s = %s\n" % (permission, user.name))
commit_message = 'User %s added to repo %s with permissions: %s' %\
(user, self.repository_model.name, permission)
self.repository_model.git.commit(['conf'], commit_message)
user.repos.append(self.repo)
return user
@with_user
def edit(self, user, permission):
pattern = r'(\s*)([RW+DC]*)(\s*)=(\s*)%s\s+' % user.name
string = r"\n %s = %s" % (permission, user.name)
self.repo.replace(pattern, string)
self.repository_model.git.commit(['conf'],
"User %s has %s permission for repository %s" %
(user.name, permission, self.repository_model.name))
return user
@with_user
def remove(self, user):
pattern = r'(\s*)([RW+DC]*)(\s*)=(\s*)%s\s+' % user.name
self.repo.replace(pattern, "")
self.repository_model.git.commit(['conf'],
"Deleted user %s from repository %s" %
(user.name, self.repository_model.name))
def list(self):
users = []
for user in self.repo.users:
if user=="None":
continue
pattern = r'(\s*)([RW+DC]*)(\s*)=(\s*)%s\s+' % user
with open(str(self.repo.path)) as f:
config = f.read()
for match in re.compile(pattern).finditer(config):
perm = match.group(2)
users.append({"name":user,"permission":perm})
return users
def __iter__(self):
for user in self._user:
yield user
def __getitem__(self, item):
return self._users[item]
def __setitem__(self, item, value):
self._users[item] = value
def __add__(self, items):
for item in items:
self.append(item)
def __str__(self):
return "['%s']" % ', '.join(self.repo.users)