From 7562655cf4bf28a1ebd6c458334da0c166f34e61 Mon Sep 17 00:00:00 2001 From: efkin Date: Mon, 13 Mar 2017 21:17:18 +0100 Subject: [refactor] Improve python3 compatibility With this commit all tests on py34 tox environment are collected. --- common/src/leap/soledad/common/command.py | 2 +- common/src/leap/soledad/common/couch/__init__.py | 5 ++--- common/src/leap/soledad/common/couch/state.py | 3 ++- .../src/leap/soledad/common/l2db/backends/sqlite_backend.py | 13 ++++++++----- common/src/leap/soledad/common/l2db/query_parser.py | 2 +- common/src/leap/soledad/common/l2db/remote/http_app.py | 6 +++--- common/src/leap/soledad/common/l2db/remote/http_client.py | 7 +++---- common/src/leap/soledad/common/l2db/remote/http_database.py | 2 +- common/src/leap/soledad/common/l2db/sync.py | 2 +- 9 files changed, 22 insertions(+), 20 deletions(-) (limited to 'common') diff --git a/common/src/leap/soledad/common/command.py b/common/src/leap/soledad/common/command.py index 811bf135..66aa6b7a 100644 --- a/common/src/leap/soledad/common/command.py +++ b/common/src/leap/soledad/common/command.py @@ -45,7 +45,7 @@ def exec_validated_cmd(cmd, argument, validator=None): try: process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - except OSError, e: + except OSError as e: return 1, e (out, err) = process.communicate() code = process.wait() diff --git a/common/src/leap/soledad/common/couch/__init__.py b/common/src/leap/soledad/common/couch/__init__.py index 2e6f734e..2343e849 100644 --- a/common/src/leap/soledad/common/couch/__init__.py +++ b/common/src/leap/soledad/common/couch/__init__.py @@ -25,9 +25,8 @@ import re import uuid import binascii - -from StringIO import StringIO -from urlparse import urljoin +from six import StringIO +from six.moves.urllib.parse import urljoin from contextlib import contextmanager diff --git a/common/src/leap/soledad/common/couch/state.py b/common/src/leap/soledad/common/couch/state.py index a4841d0d..8cbe0934 100644 --- a/common/src/leap/soledad/common/couch/state.py +++ b/common/src/leap/soledad/common/couch/state.py @@ -19,7 +19,8 @@ Server state using CouchDatabase as backend. """ import couchdb import re -from urlparse import urljoin + +from six.moves.urllib.parse import urljoin from leap.soledad.common.log import getLogger from leap.soledad.common.couch import CouchDatabase diff --git a/common/src/leap/soledad/common/l2db/backends/sqlite_backend.py b/common/src/leap/soledad/common/l2db/backends/sqlite_backend.py index 27db65af..4f7b1259 100644 --- a/common/src/leap/soledad/common/l2db/backends/sqlite_backend.py +++ b/common/src/leap/soledad/common/l2db/backends/sqlite_backend.py @@ -58,7 +58,7 @@ class SQLiteDatabase(CommonBackend): try: c.execute("SELECT value FROM u1db_config" " WHERE name = 'index_storage'") - except dbapi2.OperationalError, e: + except dbapi2.OperationalError as e: # The table does not exist yet return None, e else: @@ -668,7 +668,7 @@ class SQLiteDatabase(CommonBackend): c = self._db_handle.cursor() try: c.execute(statement, tuple(args)) - except dbapi2.OperationalError, e: + except dbapi2.OperationalError as e: raise dbapi2.OperationalError( str(e) + '\nstatement: %s\nargs: %s\n' % (statement, args)) @@ -768,7 +768,7 @@ class SQLiteDatabase(CommonBackend): c = self._db_handle.cursor() try: c.execute(statement, tuple(args)) - except dbapi2.OperationalError, e: + except dbapi2.OperationalError as e: raise dbapi2.OperationalError( str(e) + '\nstatement: %s\nargs: %s\n' % (statement, args)) @@ -798,7 +798,7 @@ class SQLiteDatabase(CommonBackend): value_fields)) try: c.execute(statement, tuple(definition)) - except dbapi2.OperationalError, e: + except dbapi2.OperationalError as e: raise dbapi2.OperationalError( str(e) + '\nstatement: %s\nargs: %s\n' % (statement, tuple(definition))) @@ -893,7 +893,10 @@ class SQLitePartialExpandDatabase(SQLiteDatabase): stored_def = self._get_index_definition(index_name) if stored_def == [x[-1] for x in definition]: return - raise errors.IndexNameTakenError, e, sys.exc_info()[2] + raise errors.IndexNameTakenError( + str(e) + + str(sys.exc_info()[2]) + ) new_fields = set( [f for f in index_expressions if f not in cur_fields]) if new_fields: diff --git a/common/src/leap/soledad/common/l2db/query_parser.py b/common/src/leap/soledad/common/l2db/query_parser.py index dd35b12a..15a9ac80 100644 --- a/common/src/leap/soledad/common/l2db/query_parser.py +++ b/common/src/leap/soledad/common/l2db/query_parser.py @@ -323,7 +323,7 @@ class Parser(object): else: try: inner = arg_type(arg) - except ValueError, e: + except ValueError as e: raise errors.IndexDefinitionParseError( "Invalid value %r for argument type %r " "(%r)." % (arg, arg_type, e)) diff --git a/common/src/leap/soledad/common/l2db/remote/http_app.py b/common/src/leap/soledad/common/l2db/remote/http_app.py index 496274b2..a4eddb36 100644 --- a/common/src/leap/soledad/common/l2db/remote/http_app.py +++ b/common/src/leap/soledad/common/l2db/remote/http_app.py @@ -21,11 +21,11 @@ HTTP Application exposing U1DB. # TODO -- deprecate, use twisted/txaio. import functools -import httplib +import six.moves.http_client as httplib import inspect import json import sys -import urlparse +import six.moves.urllib.parse as urlparse import routes.mapper @@ -610,7 +610,7 @@ class HTTPApp(object): try: resource = self._lookup_resource(environ, responder) HTTPInvocationByMethodWithBody(resource, environ, self)() - except errors.U1DBError, e: + except errors.U1DBError as e: self.request_u1db_error(environ, e) status = http_errors.wire_description_to_status.get( e.wire_description, 500) diff --git a/common/src/leap/soledad/common/l2db/remote/http_client.py b/common/src/leap/soledad/common/l2db/remote/http_client.py index 53363c0a..1124b038 100644 --- a/common/src/leap/soledad/common/l2db/remote/http_client.py +++ b/common/src/leap/soledad/common/l2db/remote/http_client.py @@ -16,14 +16,13 @@ """Base class to make requests to a remote HTTP server.""" -import httplib import json import socket import ssl import sys -import urlparse import urllib - +import six.moves.urllib.parse as urlparse +import six.moves.http_client as httplib from time import sleep from leap.soledad.common.l2db import errors from leap.soledad.common.l2db.remote import http_errors @@ -168,7 +167,7 @@ class HTTPClientBase(object): try: self._conn.request(method, url_query, body, headers) return self._response() - except errors.Unavailable, e: + except errors.Unavailable as e: sleep(delay) raise e diff --git a/common/src/leap/soledad/common/l2db/remote/http_database.py b/common/src/leap/soledad/common/l2db/remote/http_database.py index 7512379f..7e61e5a4 100644 --- a/common/src/leap/soledad/common/l2db/remote/http_database.py +++ b/common/src/leap/soledad/common/l2db/remote/http_database.py @@ -87,7 +87,7 @@ class HTTPDatabase(http_client.HTTPClientBase, Database): 'GET', ['doc', doc_id], {"include_deleted": include_deleted}) except errors.DocumentDoesNotExist: return None - except errors.HTTPError, e: + except errors.HTTPError as e: if (e.status == DOCUMENT_DELETED_STATUS and 'x-u1db-rev' in e.headers): res = None diff --git a/common/src/leap/soledad/common/l2db/sync.py b/common/src/leap/soledad/common/l2db/sync.py index 5e9b22f4..32281f30 100644 --- a/common/src/leap/soledad/common/l2db/sync.py +++ b/common/src/leap/soledad/common/l2db/sync.py @@ -15,7 +15,7 @@ # along with u1db. If not, see . """The synchronization utilities for U1DB.""" -from itertools import izip +from six.moves import zip as izip from leap.soledad.common import l2db from leap.soledad.common.l2db import errors -- cgit v1.2.3