equal
deleted
inserted
replaced
313 |
313 |
314 def new_access(self, login): |
314 def new_access(self, login): |
315 """provide a new RepoAccess object for a given user |
315 """provide a new RepoAccess object for a given user |
316 |
316 |
317 The access is automatically closed at the end of the test.""" |
317 The access is automatically closed at the end of the test.""" |
|
318 login = unicode(login) |
318 access = RepoAccess(self.repo, login, self.requestcls) |
319 access = RepoAccess(self.repo, login, self.requestcls) |
319 self._open_access.add(access) |
320 self._open_access.add(access) |
320 return access |
321 return access |
321 |
322 |
322 def _close_access(self): |
323 def _close_access(self): |
644 elif isinstance(login, tuple): |
645 elif isinstance(login, tuple): |
645 groups = login |
646 groups = login |
646 login = req |
647 login = req |
647 assert not isinstance(self, type) |
648 assert not isinstance(self, type) |
648 req = self._admin_clt_cnx |
649 req = self._admin_clt_cnx |
|
650 if login is not None: |
|
651 login = unicode(login) |
649 if password is None: |
652 if password is None: |
650 password = login.encode('utf8') |
653 password = login |
651 user = req.create_entity('CWUser', login=unicode(login), |
654 user = req.create_entity('CWUser', login=login, |
652 upassword=password, **kwargs) |
655 upassword=password, **kwargs) |
653 req.execute('SET X in_group G WHERE X eid %%(x)s, G name IN(%s)' |
656 req.execute('SET X in_group G WHERE X eid %%(x)s, G name IN(%s)' |
654 % ','.join(repr(str(g)) for g in groups), |
657 % ','.join(repr(str(g)) for g in groups), |
655 {'x': user.eid}) |
658 {'x': user.eid}) |
656 if email is not None: |
659 if email is not None: |