# HG changeset patch # User Mads Kiilerich # Date 2020-03-06 19:20:36 # Node ID eb795f7a7a187c52de2e9fd717c6147c724c3b9d # Parent b595758f07923b7bfd46f3d48b6eae2cf23a5a4a utils: let is_valid_repo_uri report URLError from ._check_url as InvalidCloneUriException Better encapsulation of internals. diff --git a/kallithea/lib/utils.py b/kallithea/lib/utils.py --- a/kallithea/lib/utils.py +++ b/kallithea/lib/utils.py @@ -31,6 +31,7 @@ import os import re import sys import traceback +import urllib.error from distutils.version import StrictVersion import beaker.cache @@ -230,7 +231,10 @@ def is_valid_repo_uri(repo_type, url, ui if url.startswith('http') or url.startswith('ssh'): # initially check if it's at least the proper URL # or does it pass basic auth - MercurialRepository._check_url(url, ui) + try: + MercurialRepository._check_url(url, ui) + except urllib.error.URLError as e: + raise InvalidCloneUriException('URI %s URLError: %s' % (url, e)) elif url.startswith('svn+http'): try: from hgsubversion.svnrepo import svnremoterepo @@ -246,7 +250,10 @@ def is_valid_repo_uri(repo_type, url, ui if url.startswith('http') or url.startswith('git'): # initially check if it's at least the proper URL # or does it pass basic auth - GitRepository._check_url(url) + try: + GitRepository._check_url(url) + except urllib.error.URLError as e: + raise InvalidCloneUriException('URI %s URLError: %s' % (url, e)) elif url.startswith('svn+http'): raise InvalidCloneUriException('URI type %s not implemented' % (url,)) elif url.startswith('hg+http'):