Пример #1
0
    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)
Пример #2
0
    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
            }
        }
Пример #4
0
    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)
Пример #5
0
 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])
Пример #6
0
 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]
     )
Пример #7
0
 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')
     }
Пример #8
0
 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')
     }
Пример #9
0
 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
         ]
     )