Mercurial > kallithea
changeset 7759:b71aedc74d7b
clone_url: clarify variable naming
Minor nits:
user -> username (temporarily more complex)
uri_tmpl -> clone_uri_tmpl
qualified_home_url -> prefix_url
decoded_path -> prefix
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 16 Jul 2019 12:13:53 +0200 |
parents | f0013f65982d |
children | 67962f489ddd |
files | kallithea/controllers/summary.py kallithea/lib/utils2.py kallithea/model/db.py kallithea/tests/other/test_libs.py |
diffstat | 4 files changed, 38 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/summary.py Sun Jul 21 18:54:05 2019 +0200 +++ b/kallithea/controllers/summary.py Tue Jul 16 12:13:53 2019 +0200 @@ -126,10 +126,8 @@ else: log.error("Configured clone_uri_tmpl %r has no '{repo}' or '_{repoid}' and cannot toggle to use repo id URLs", c.clone_uri_tmpl) - c.clone_repo_url = c.db_repo.clone_url(user=username, - uri_tmpl=_def_clone_uri) - c.clone_repo_url_id = c.db_repo.clone_url(user=username, - uri_tmpl=_def_clone_uri_by_id) + c.clone_repo_url = c.db_repo.clone_url(clone_uri_tmpl=_def_clone_uri, username=username) + c.clone_repo_url_id = c.db_repo.clone_url(clone_uri_tmpl=_def_clone_uri_by_id, username=username) if c.db_repo.enable_statistics: c.show_stats = True
--- a/kallithea/lib/utils2.py Sun Jul 21 18:54:05 2019 +0200 +++ b/kallithea/lib/utils2.py Tue Jul 16 12:13:53 2019 +0200 @@ -411,25 +411,27 @@ return ''.join(uri) -def get_clone_url(uri_tmpl, qualified_home_url, repo_name, repo_id, **override): - parsed_url = urlobject.URLObject(qualified_home_url) - decoded_path = safe_unicode(urllib.unquote(parsed_url.path.rstrip('/'))) +def get_clone_url(clone_uri_tmpl, prefix_url, repo_name, repo_id, **override): + parsed_url = urlobject.URLObject(prefix_url) + prefix = safe_unicode(urllib.unquote(parsed_url.path.rstrip('/'))) args = { 'scheme': parsed_url.scheme, 'user': '', - 'netloc': parsed_url.netloc+decoded_path, # path if we use proxy-prefix - 'prefix': decoded_path, + 'netloc': parsed_url.netloc + prefix, # like "hostname:port/prefix" (with optional ":port" and "/prefix") + 'prefix': prefix, # undocumented, empty or starting with / 'repo': repo_name, - 'repoid': str(repo_id) + 'repoid': str(repo_id), } + if 'username' in override: + args['user'] = override.pop('username') args.update(override) args['user'] = urllib.quote(safe_str(args['user'])) for k, v in args.items(): - uri_tmpl = uri_tmpl.replace('{%s}' % k, v) + clone_uri_tmpl = clone_uri_tmpl.replace('{%s}' % k, v) # remove leading @ sign if it's present. Case of empty user - url_obj = urlobject.URLObject(uri_tmpl) + url_obj = urlobject.URLObject(clone_uri_tmpl) url = url_obj.with_netloc(url_obj.netloc.lstrip('@')) return safe_unicode(url)
--- a/kallithea/model/db.py Sun Jul 21 18:54:05 2019 +0200 +++ b/kallithea/model/db.py Tue Jul 16 12:13:53 2019 +0200 @@ -1261,31 +1261,31 @@ return clone_uri def clone_url(self, **override): - import kallithea.lib.helpers as h - qualified_home_url = h.canonical_url('home') - - uri_tmpl = None + clone_uri_tmpl = None if 'with_id' in override: - uri_tmpl = self.DEFAULT_CLONE_URI_ID + clone_uri_tmpl = self.DEFAULT_CLONE_URI_ID del override['with_id'] - if 'uri_tmpl' in override: - uri_tmpl = override['uri_tmpl'] - del override['uri_tmpl'] + if 'clone_uri_tmpl' in override: + clone_uri_tmpl = override['clone_uri_tmpl'] + del override['clone_uri_tmpl'] # we didn't override our tmpl from **overrides - if not uri_tmpl: - uri_tmpl = self.DEFAULT_CLONE_URI + if not clone_uri_tmpl: + clone_uri_tmpl = self.DEFAULT_CLONE_URI try: from tg import tmpl_context as c - uri_tmpl = c.clone_uri_tmpl + clone_uri_tmpl = c.clone_uri_tmpl except AttributeError: # in any case if we call this outside of request context, # ie, not having tmpl_context set up pass - return get_clone_url(uri_tmpl=uri_tmpl, - qualified_home_url=qualified_home_url, + import kallithea.lib.helpers as h + prefix_url = h.canonical_url('home') + + return get_clone_url(clone_uri_tmpl=clone_uri_tmpl, + prefix_url=prefix_url, repo_name=self.repo_name, repo_id=self.repo_id, **override)
--- a/kallithea/tests/other/test_libs.py Sun Jul 21 18:54:05 2019 +0200 +++ b/kallithea/tests/other/test_libs.py Tue Jul 16 12:13:53 2019 +0200 @@ -267,25 +267,25 @@ grav = gravatar_url(email_address=em, size=24) assert grav == 'https://example.com/%s/%s' % (_md5(em), 24) - @parametrize('tmpl,repo_name,overrides,prefix,expected', [ + @parametrize('clone_uri_tmpl,repo_name,overrides,prefix,expected', [ (Repository.DEFAULT_CLONE_URI, 'group/repo1', {}, '', 'http://vps1:8000/group/repo1'), - (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'user': 'username'}, '', 'http://username@vps1:8000/group/repo1'), + (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'username': 'username'}, '', 'http://username@vps1:8000/group/repo1'), (Repository.DEFAULT_CLONE_URI, 'group/repo1', {}, '/prefix', 'http://vps1:8000/prefix/group/repo1'), - (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'user': 'user'}, '/prefix', 'http://user@vps1:8000/prefix/group/repo1'), - (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'user': 'username'}, '/prefix', 'http://username@vps1:8000/prefix/group/repo1'), - (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'user': 'user'}, '/prefix/', 'http://user@vps1:8000/prefix/group/repo1'), - (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'user': 'username'}, '/prefix/', 'http://username@vps1:8000/prefix/group/repo1'), + (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'username': 'user'}, '/prefix', 'http://user@vps1:8000/prefix/group/repo1'), + (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'username': 'username'}, '/prefix', 'http://username@vps1:8000/prefix/group/repo1'), + (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'username': 'user'}, '/prefix/', 'http://user@vps1:8000/prefix/group/repo1'), + (Repository.DEFAULT_CLONE_URI, 'group/repo1', {'username': 'username'}, '/prefix/', 'http://username@vps1:8000/prefix/group/repo1'), ('{scheme}://{user}@{netloc}/_{repoid}', 'group/repo1', {}, '', 'http://vps1:8000/_23'), - ('{scheme}://{user}@{netloc}/_{repoid}', 'group/repo1', {'user': 'username'}, '', 'http://username@vps1:8000/_23'), - ('http://{user}@{netloc}/_{repoid}', 'group/repo1', {'user': 'username'}, '', 'http://username@vps1:8000/_23'), - ('http://{netloc}/_{repoid}', 'group/repo1', {'user': 'username'}, '', 'http://vps1:8000/_23'), - ('https://{user}@proxy1.example.com/{repo}', 'group/repo1', {'user': 'username'}, '', 'https://username@proxy1.example.com/group/repo1'), + ('{scheme}://{user}@{netloc}/_{repoid}', 'group/repo1', {'username': 'username'}, '', 'http://username@vps1:8000/_23'), + ('http://{user}@{netloc}/_{repoid}', 'group/repo1', {'username': 'username'}, '', 'http://username@vps1:8000/_23'), + ('http://{netloc}/_{repoid}', 'group/repo1', {'username': 'username'}, '', 'http://vps1:8000/_23'), + ('https://{user}@proxy1.example.com/{repo}', 'group/repo1', {'username': 'username'}, '', 'https://username@proxy1.example.com/group/repo1'), ('https://{user}@proxy1.example.com/{repo}', 'group/repo1', {}, '', 'https://proxy1.example.com/group/repo1'), - ('https://proxy1.example.com/{user}/{repo}', 'group/repo1', {'user': 'username'}, '', 'https://proxy1.example.com/username/group/repo1'), + ('https://proxy1.example.com/{user}/{repo}', 'group/repo1', {'username': 'username'}, '', 'https://proxy1.example.com/username/group/repo1'), ]) - def test_clone_url_generator(self, tmpl, repo_name, overrides, prefix, expected): + def test_clone_url_generator(self, clone_uri_tmpl, repo_name, overrides, prefix, expected): from kallithea.lib.utils2 import get_clone_url - clone_url = get_clone_url(uri_tmpl=tmpl, qualified_home_url='http://vps1:8000'+prefix, + clone_url = get_clone_url(clone_uri_tmpl=clone_uri_tmpl, prefix_url='http://vps1:8000' + prefix, repo_name=repo_name, repo_id=23, **overrides) assert clone_url == expected