Commit 545a7c20 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

py2/py3: stop using deprecated urllib.split* functions.

parent d1a6a688
......@@ -55,10 +55,7 @@ from Products.ERP5 import _dtmldir
from six.moves import xrange
from six.moves import cStringIO as StringIO
from six.moves.urllib.request import pathname2url, urlopen, urlretrieve
try:
from urllib import splittype
except ImportError: # six.PY3
from urllib.parse import splittype
from six.moves.urllib.parse import urlparse
from six.moves import urllib
import re
from xml.dom.minidom import parse
......@@ -385,7 +382,9 @@ class TemplateTool (BaseTool):
if id is None:
id = self.generateNewId()
urltype, path = splittype(url)
parsed_url = urlparse(url)
urltype = parsed_url.scheme
path = parsed_url.path
if WIN and urltype and '\\' in path:
urltype = None
path = url
......@@ -625,7 +624,9 @@ class TemplateTool (BaseTool):
#LOG('updateRepositoryBusiessTemplateList', 0,
# 'repository_list = %r' % (repository_list,))
for repository in repository_list:
urltype, url = splittype(repository)
parsed_url = urlparse(url)
urltype = parsed_url.scheme
path = parsed_url.path
if WIN and urltype and '\\' in url:
urltype = None
url = repository
......
......@@ -61,7 +61,7 @@ from Products.PythonScripts.PythonScript import PythonScript
from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
from Products.ERP5Form.PreferenceTool import Priority
from zLOG import LOG, DEBUG
from Products.ERP5Type.Utils import convertToUpperCase
from Products.ERP5Type.Utils import convertToUpperCase, str2bytes
from Products.ERP5Type.tests.backportUnittest import SetupSiteError
from Products.ERP5Type.tests.utils import addUserToDeveloperRole
from Products.ERP5Type.tests.utils import parseListeningAddress
......@@ -590,17 +590,18 @@ class ERP5TypeTestCaseMixin(ProcessingNodeTestCase, PortalTestCase):
bt5_path_list += [os.path.join(path, "*") for path in bt5_path_list]
def search(path, template):
urltype, url = urllib.splittype(path + '/' + template)
if urltype == 'http':
host, selector = urllib.splithost(url)
user_passwd, host = urllib.splituser(host)
host = urllib.unquote(host)
h = httplib.HTTP(host)
parsed_url = six.moves.urllib.parse.urlparse(path + '/' + template)
if parsed_url.scheme == 'http':
user = parsed_url.username
password = parsed_url.password
host = parsed_url.hostname
selector = parsed_url.path
h = http_client.HTTP(host)
Please register or sign in to reply
h.putrequest('HEAD', selector)
h.putheader('Host', host)
if user_passwd:
if user and passwd:
  • Undefined variable 'passwd' here

  • and more errors below

    image

    if I understand correctly, this code is to support http://user:password@host/... style URLs (and it only http, not https) as business template repositories.

    I don't think anybody uses this, can't we drop this part ?

  • What I have in mind is that keeping only this branch might be enough

          def search(path, template):
            path_list = glob(os.path.join(path, template))
            if path_list:
              return path_list[0]

    ( and I also think that it would be nice to run pylint on Products code, we don't do it because there was too much bad code, but we moved a lot of code in business templates, maybe now it would be possible to consider pylint on Products as well )

  • let's try !1678 (closed)

Please register or sign in to reply
h.putheader('Authorization',
'Basic %s' % base64.b64encode(user_passwd).strip())
'Basic %s' % base64.b64encode(str2bytes('%s:%s' % (user, passwd))).strip())
h.endheaders()
errcode, errmsg, headers = h.getreply()
if errcode == 200:
......@@ -1313,7 +1314,7 @@ class ERP5TypeCommandLineTestCase(ERP5TypeTestCaseMixin):
sql = kw.get('erp5_sql_connection_string')
if sql:
app[portal_name]._setProperty('erp5_site_global_id',
base64.standard_b64encode(sql))
base64.standard_b64encode(str2bytes(sql)))
if not quiet:
ZopeTestCase._print('done (%.3fs)\n' % (time.time() - _start))
# Release locks
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment