def test_alternative_gravatar(self): from rhodecode.lib.helpers import gravatar_url _md5 = lambda s: hashlib.md5(s).hexdigest() def fake_conf(**kwargs): from pylons import config config['app_conf'] = {} config['app_conf']['use_gravatar'] = True config['app_conf'].update(kwargs) return config class fake_url(): @classmethod def current(cls, *args, **kwargs): return 'https://server.com' with mock.patch('pylons.url', fake_url): fake = fake_conf( alternative_gravatar_url='http://test.com/{email}') with mock.patch('pylons.config', fake): from pylons import url assert url.current() == 'https://server.com' grav = gravatar_url(email_address='*****@*****.**', size=24) assert grav == 'http://test.com/[email protected]' fake = fake_conf( alternative_gravatar_url='http://test.com/{email}') with mock.patch('pylons.config', fake): grav = gravatar_url(email_address='*****@*****.**', size=24) assert grav == 'http://test.com/[email protected]' fake = fake_conf( alternative_gravatar_url='http://test.com/{md5email}') with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'http://test.com/%s' % (_md5(em)) fake = fake_conf( alternative_gravatar_url='http://test.com/{md5email}/{size}') with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'http://test.com/%s/%s' % (_md5(em), 24) fake = fake_conf( alternative_gravatar_url='{scheme}://{netloc}/{md5email}/{size}' ) with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'https://server.com/%s/%s' % (_md5(em), 24)
def get_users(self, name_contains=None, limit=20, only_active=True): # TODO: mikhail: move this method to the UserModel. query = self.sa.query(User) if only_active: query = query.filter(User.active == true()) if name_contains: ilike_expression = u'%{}%'.format(safe_unicode(name_contains)) query = query.filter( or_(User.name.ilike(ilike_expression), User.lastname.ilike(ilike_expression), User.username.ilike(ilike_expression))) query = query.limit(limit) users = query.all() _users = [{ 'id': user.user_id, 'first_name': user.name, 'last_name': user.lastname, 'username': user.username, 'icon_link': h.gravatar_url(user.email, 14), 'value_display': h.person(user.email), 'value': user.username, 'value_type': 'user', 'active': user.active, } for user in users] return _users
def generate_repo_data(self, repo, commit_id=None, branch=None, bookmark=None): all_refs, selected_ref = \ self._get_repo_pullrequest_sources( repo.scm_instance(), commit_id=commit_id, branch=branch, bookmark=bookmark) refs_select2 = [] for element in all_refs: children = [{'id': x[0], 'text': x[1]} for x in element[0]] refs_select2.append({'text': element[1], 'children': children}) return { 'user': { 'user_id': repo.user.user_id, 'username': repo.user.username, 'firstname': repo.user.firstname, 'lastname': repo.user.lastname, 'gravatar_link': h.gravatar_url(repo.user.email, 14), }, 'description': h.chop_at_smart(repo.description, '\n'), 'refs': { 'all_refs': all_refs, 'selected_ref': selected_ref, 'select2_refs': refs_select2 } }
def test_alternative_gravatar(self): from rhodecode.lib.helpers import gravatar_url _md5 = lambda s: hashlib.md5(s).hexdigest() def fake_conf(**kwargs): from pylons import config config['app_conf'] = {} config['app_conf']['use_gravatar'] = True config['app_conf'].update(kwargs) return config class fake_url(): @classmethod def current(cls, *args, **kwargs): return 'https://server.com' with mock.patch('pylons.url', fake_url): fake = fake_conf(alternative_gravatar_url='http://test.com/{email}') with mock.patch('pylons.config', fake): from pylons import url assert url.current() == 'https://server.com' grav = gravatar_url(email_address='*****@*****.**', size=24) assert grav == 'http://test.com/[email protected]' fake = fake_conf(alternative_gravatar_url='http://test.com/{email}') with mock.patch('pylons.config', fake): grav = gravatar_url(email_address='*****@*****.**', size=24) assert grav == 'http://test.com/[email protected]' fake = fake_conf(alternative_gravatar_url='http://test.com/{md5email}') with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'http://test.com/%s' % (_md5(em)) fake = fake_conf(alternative_gravatar_url='http://test.com/{md5email}/{size}') with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'http://test.com/%s/%s' % (_md5(em), 24) fake = fake_conf(alternative_gravatar_url='{scheme}://{netloc}/{md5email}/{size}') with mock.patch('pylons.config', fake): em = '*****@*****.**' grav = gravatar_url(email_address=em, size=24) assert grav == 'https://server.com/%s/%s' % (_md5(em), 24)
def get_users_js(self): users = self.sa.query(User).filter(User.active == True).all() return json.dumps([{ 'id': u.user_id, 'fname': u.name, 'lname': u.lastname, 'nname': u.username, 'gravatar_lnk': h.gravatar_url(u.email, 14) } for u in users])
def get_users_js(self): users = self.sa.query(User).filter(User.active == True).all() return json.dumps([ { 'id': u.user_id, 'fname': u.name, 'lname': u.lastname, 'nname': u.username, 'gravatar_lnk': h.gravatar_url(u.email, 14) } for u in users] )
def add_other_repo(repo, branch_rev=None): if repo.repo_name in other_repos_info: # shouldn't happen return c.other_repos.append((repo.repo_name, repo.repo_name)) other_refs, selected_other_ref = self._get_repo_refs(repo.scm_instance, branch_rev=branch_rev) other_repos_info[repo.repo_name] = { 'user': dict(user_id=repo.user.user_id, username=repo.user.username, firstname=repo.user.firstname, lastname=repo.user.lastname, gravatar_link=h.gravatar_url(repo.user.email, 14)), 'description': repo.description.split('\n', 1)[0], 'revs': h.select('other_ref', selected_other_ref, other_refs, class_='refs') }
def get_users_js(self): users = self.sa.query(User).filter(User.active == True).all() return json.dumps( [ { "id": u.user_id, "fname": u.name, "lname": u.lastname, "nname": u.username, "gravatar_lnk": h.gravatar_url(u.email, 14), } for u in users ] )