You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2018/06/01 15:00:14 UTC

[04/11] qpid-dispatch git commit: DISPATCH-965: fixups for Python 2.7 compatibility

DISPATCH-965: fixups for Python 2.7 compatibility


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/7bdd55c7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/7bdd55c7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/7bdd55c7

Branch: refs/heads/master
Commit: 7bdd55c7db7b010f204750c0e39fbc067180d26a
Parents: 878534e
Author: Kenneth Giusti <kg...@apache.org>
Authored: Sun May 13 21:11:31 2018 -0400
Committer: Kenneth Giusti <kg...@apache.org>
Committed: Sun May 13 21:11:31 2018 -0400

----------------------------------------------------------------------
 console/config/config.py                        |  5 +++
 console/config/mock/schema.py                   |  5 +++
 console/config/mock/section.py                  |  5 +++
 .../dispatch-dashboard/dispatch/dashboard.py    |  5 +++
 .../dispatch-dashboard/dispatch/overv/panel.py  |  5 +++
 .../dispatch-dashboard/dispatch/overv/tests.py  |  5 +++
 .../dispatch-dashboard/dispatch/overv/urls.py   |  5 +++
 .../dispatch-dashboard/dispatch/overv/views.py  |  5 +++
 .../dispatch/topology/panel.py                  |  5 +++
 .../dispatch/topology/tests.py                  |  5 +++
 .../dispatch/topology/urls.py                   |  5 +++
 .../dispatch/topology/views.py                  |  5 +++
 .../enabled/_4000_dispatch.py                   |  5 +++
 .../enabled/_4030_dispatch_overv_panel.py       |  5 +++
 .../enabled/_4050_dispatch_topology_panel.py    |  4 ++
 doc/book/schema_txt.py                          |  4 ++
 doc/man/help2txt.py                             |  5 +++
 doc/man/qdrouterd.conf.5.py                     |  5 +++
 python/qpid_dispatch/management/client.py       |  5 +++
 python/qpid_dispatch/management/entity.py       |  5 +++
 python/qpid_dispatch/management/error.py        |  5 +++
 .../qpid_dispatch_internal/compat/__init__.py   |  5 +++
 .../compat/ordereddict.py                       |  6 +++
 python/qpid_dispatch_internal/compat/subproc.py |  4 ++
 python/qpid_dispatch_internal/dispatch.py       |  5 +++
 .../display_name/display_name.py                |  7 ++++
 .../qpid_dispatch_internal/management/agent.py  | 10 +++--
 .../qpid_dispatch_internal/management/config.py |  5 +++
 .../management/qdrouter.py                      |  4 ++
 .../qpid_dispatch_internal/management/schema.py |  6 +++
 .../management/schema_doc.py                    |  3 ++
 .../policy/policy_local.py                      |  4 ++
 .../policy/policy_manager.py                    |  5 +++
 .../policy/policy_util.py                       |  7 +++-
 .../qpid_dispatch_internal/router/__init__.py   |  5 +++
 python/qpid_dispatch_internal/router/address.py |  5 ++-
 python/qpid_dispatch_internal/router/data.py    | 21 ++++++----
 python/qpid_dispatch_internal/router/engine.py  |  5 +++
 python/qpid_dispatch_internal/router/hello.py   |  5 +++
 python/qpid_dispatch_internal/router/link.py    |  5 +++
 python/qpid_dispatch_internal/router/message.py |  5 +++
 python/qpid_dispatch_internal/router/mobile.py  |  5 +++
 python/qpid_dispatch_internal/router/node.py    |  5 +++
 python/qpid_dispatch_internal/router/path.py    |  5 +++
 python/qpid_dispatch_internal/tools/__init__.py |  5 +++
 python/qpid_dispatch_internal/tools/command.py  |  3 ++
 python/qpid_dispatch_internal/tools/display.py  |  3 ++
 python/qpid_dispatch_site.py.in                 |  4 ++
 run.py.in                                       |  3 ++
 src/entity.c                                    |  2 +-
 src/error.c                                     |  8 +---
 src/log.c                                       |  3 +-
 src/python_embedded.c                           | 41 ++++++++++----------
 src/python_private.h                            |  2 +-
 src/schema_c.py                                 |  4 ++
 src/server.c                                    |  6 ++-
 tests/authservice.py                            |  6 ++-
 tests/management/entity.py                      |  5 +++
 tests/management/qdrouter.py                    |  5 +++
 tests/management/schema.py                      |  5 +++
 tests/mock/__init__.py                          |  4 ++
 tests/mock/dispatch.py                          |  5 +++
 tests/router_engine_test.py                     |  3 ++
 tests/router_policy_test.py                     |  3 ++
 tests/run_system_tests.py                       |  4 ++
 tests/system_test.py                            |  4 ++
 tests/system_tests_auth_service_plugin.py       |  4 ++
 tests/system_tests_authz_service_plugin.py      |  5 +++
 tests/system_tests_autolinks.py                 |  6 +++
 tests/system_tests_bad_configuration.py         |  6 +++
 tests/system_tests_broker.py                    |  7 ++++
 tests/system_tests_cmdline_parsing.py           |  5 +++
 tests/system_tests_default_distribution.py      |  5 +++
 tests/system_tests_delivery_abort.py            |  5 +++
 tests/system_tests_deprecated.py                |  5 +++
 ..._tests_disallow_link_resumable_link_route.py |  5 +++
 tests/system_tests_distribution.py              |  3 ++
 tests/system_tests_drain.py                     |  5 +++
 tests/system_tests_drain_support.py             |  7 +++-
 tests/system_tests_dynamic_terminus.py          |  5 +++
 tests/system_tests_exchange_bindings.py         |  5 +++
 tests/system_tests_failover_list.py             |  5 +++
 tests/system_tests_handle_failover.py           |  5 +++
 tests/system_tests_http.py                      |  4 ++
 tests/system_tests_link_routes.py               |  7 +++-
 tests/system_tests_log_message_components.py    |  5 +++
 tests/system_tests_management.py                |  5 +++
 tests/system_tests_multi_tenancy.py             |  5 +++
 tests/system_tests_one_router.py                |  9 ++++-
 tests/system_tests_policy.py                    |  9 ++++-
 tests/system_tests_protocol_family.py           |  7 +++-
 tests/system_tests_protocol_settings.py         |  5 +++
 tests/system_tests_qdmanage.py                  |  7 +++-
 tests/system_tests_qdstat.py                    |  5 +++
 tests/system_tests_sasl_plain.py                |  5 +++
 tests/system_tests_topology.py                  |  3 ++
 tests/system_tests_topology_addition.py         |  5 +++
 tests/system_tests_topology_disposition.py      |  3 ++
 tests/system_tests_two_routers.py               |  5 +++
 tests/system_tests_user_id.py                   |  4 ++
 tests/system_tests_user_id_proxy.py             |  4 ++
 tools/qdmanage                                  |  3 ++
 tools/qdstat                                    |  3 ++
 tox.ini                                         |  7 ++--
 104 files changed, 512 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/config/config.py
----------------------------------------------------------------------
diff --git a/console/config/config.py b/console/config/config.py
index ae51bd7..1f768f5 100755
--- a/console/config/config.py
+++ b/console/config/config.py
@@ -18,6 +18,11 @@
 # under the License.
 #
 
+from __future__ import print_function
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+
 import argparse
 from pprint import pprint
 import os, sys, inspect

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/config/mock/schema.py
----------------------------------------------------------------------
diff --git a/console/config/mock/schema.py b/console/config/mock/schema.py
index 524164b..880f225 100644
--- a/console/config/mock/schema.py
+++ b/console/config/mock/schema.py
@@ -18,6 +18,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import json
 
 class Schema(object):

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/config/mock/section.py
----------------------------------------------------------------------
diff --git a/console/config/mock/section.py b/console/config/mock/section.py
index ac5b154..1e563be 100644
--- a/console/config/mock/section.py
+++ b/console/config/mock/section.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import print_function
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+
 import json
 import re
 from schema import Schema

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/dashboard.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/dashboard.py b/console/dispatch-dashboard/dispatch/dashboard.py
index 9fad953..f3212e1 100644
--- a/console/dispatch-dashboard/dispatch/dashboard.py
+++ b/console/dispatch-dashboard/dispatch/dashboard.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from django.utils.translation import ugettext_lazy as _
 
 import horizon

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/overv/panel.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/overv/panel.py b/console/dispatch-dashboard/dispatch/overv/panel.py
index 315c7e0..0032c76 100644
--- a/console/dispatch-dashboard/dispatch/overv/panel.py
+++ b/console/dispatch-dashboard/dispatch/overv/panel.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from django.utils.translation import ugettext_lazy as _
 
 import horizon

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/overv/tests.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/overv/tests.py b/console/dispatch-dashboard/dispatch/overv/tests.py
index 47816a3..119b5a4 100644
--- a/console/dispatch-dashboard/dispatch/overv/tests.py
+++ b/console/dispatch-dashboard/dispatch/overv/tests.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from horizon.test import helpers as test
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/overv/urls.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/overv/urls.py b/console/dispatch-dashboard/dispatch/overv/urls.py
index 6debf00..0dab119 100644
--- a/console/dispatch-dashboard/dispatch/overv/urls.py
+++ b/console/dispatch-dashboard/dispatch/overv/urls.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from django.conf.urls import url
 
 from dispatch.overv import views

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/overv/views.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/overv/views.py b/console/dispatch-dashboard/dispatch/overv/views.py
index 235a0d5..28a7202 100644
--- a/console/dispatch-dashboard/dispatch/overv/views.py
+++ b/console/dispatch-dashboard/dispatch/overv/views.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from horizon import views
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/topology/panel.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/topology/panel.py b/console/dispatch-dashboard/dispatch/topology/panel.py
index 6efbeda..db4eb11 100644
--- a/console/dispatch-dashboard/dispatch/topology/panel.py
+++ b/console/dispatch-dashboard/dispatch/topology/panel.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from django.utils.translation import ugettext_lazy as _
 
 import horizon

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/topology/tests.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/topology/tests.py b/console/dispatch-dashboard/dispatch/topology/tests.py
index b321fc1..96a64c3 100644
--- a/console/dispatch-dashboard/dispatch/topology/tests.py
+++ b/console/dispatch-dashboard/dispatch/topology/tests.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from horizon.test import helpers as test
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/topology/urls.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/topology/urls.py b/console/dispatch-dashboard/dispatch/topology/urls.py
index d8629f9..bdb499b 100644
--- a/console/dispatch-dashboard/dispatch/topology/urls.py
+++ b/console/dispatch-dashboard/dispatch/topology/urls.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from django.conf.urls import url
 
 from dispatch.topology import views

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/dispatch/topology/views.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/dispatch/topology/views.py b/console/dispatch-dashboard/dispatch/topology/views.py
index 03b6012..cf1699c 100644
--- a/console/dispatch-dashboard/dispatch/topology/views.py
+++ b/console/dispatch-dashboard/dispatch/topology/views.py
@@ -10,6 +10,11 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from horizon import views
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/enabled/_4000_dispatch.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/enabled/_4000_dispatch.py b/console/dispatch-dashboard/enabled/_4000_dispatch.py
index 16d3215..f45e228 100644
--- a/console/dispatch-dashboard/enabled/_4000_dispatch.py
+++ b/console/dispatch-dashboard/enabled/_4000_dispatch.py
@@ -10,6 +10,11 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 # The name of the dashboard to be added to HORIZON['dashboards']. Required.
 DASHBOARD = 'dispatch'
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/enabled/_4030_dispatch_overv_panel.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/enabled/_4030_dispatch_overv_panel.py b/console/dispatch-dashboard/enabled/_4030_dispatch_overv_panel.py
index b5d0446..1594fed 100644
--- a/console/dispatch-dashboard/enabled/_4030_dispatch_overv_panel.py
+++ b/console/dispatch-dashboard/enabled/_4030_dispatch_overv_panel.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 # The slug of the panel to be added to HORIZON_CONFIG. Required.
 PANEL = 'overv'
 # The slug of the dashboard the PANEL associated with. Required.

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/console/dispatch-dashboard/enabled/_4050_dispatch_topology_panel.py
----------------------------------------------------------------------
diff --git a/console/dispatch-dashboard/enabled/_4050_dispatch_topology_panel.py b/console/dispatch-dashboard/enabled/_4050_dispatch_topology_panel.py
index 37d408f..87e4549 100644
--- a/console/dispatch-dashboard/enabled/_4050_dispatch_topology_panel.py
+++ b/console/dispatch-dashboard/enabled/_4050_dispatch_topology_panel.py
@@ -17,6 +17,10 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 # The slug of the panel to be added to HORIZON_CONFIG. Required.
 PANEL = 'topology'

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/doc/book/schema_txt.py
----------------------------------------------------------------------
diff --git a/doc/book/schema_txt.py b/doc/book/schema_txt.py
index c9d5b1b..9f340f3 100644
--- a/doc/book/schema_txt.py
+++ b/doc/book/schema_txt.py
@@ -20,6 +20,10 @@
 """
 Generate the schema.md chapter for the dispatch book from the qdrouter.json schema.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import sys, re
 from qpid_dispatch_internal.management.qdrouter import QdSchema

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/doc/man/help2txt.py
----------------------------------------------------------------------
diff --git a/doc/man/help2txt.py b/doc/man/help2txt.py
index 0fb2f7f..24aeb53 100644
--- a/doc/man/help2txt.py
+++ b/doc/man/help2txt.py
@@ -21,6 +21,11 @@
 Convert --help output of a program into asciidoc text format.
 """
 from __future__ import print_function
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+
+
 import re, sys
 from qpid_dispatch_internal.compat import PY_STRING_TYPE
 from qpid_dispatch_internal.compat.subproc import check_output

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/doc/man/qdrouterd.conf.5.py
----------------------------------------------------------------------
diff --git a/doc/man/qdrouterd.conf.5.py b/doc/man/qdrouterd.conf.5.py
index efdb554..e2bdd8e 100644
--- a/doc/man/qdrouterd.conf.5.py
+++ b/doc/man/qdrouterd.conf.5.py
@@ -21,6 +21,11 @@
 Generate the qdrouterd.conf. man page from the qdrouterd management schema.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import sys
 from qpid_dispatch_internal.management.qdrouter import QdSchema
 from qpid_dispatch_internal.management.schema_doc import SchemaWriter

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch/management/client.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch/management/client.py b/python/qpid_dispatch/management/client.py
index a449e33..22ed58e 100644
--- a/python/qpid_dispatch/management/client.py
+++ b/python/qpid_dispatch/management/client.py
@@ -21,6 +21,11 @@
 AMQP management client for Qpid dispatch.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import qpid_dispatch_site
 import proton
 from proton import Url

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch/management/entity.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch/management/entity.py b/python/qpid_dispatch/management/entity.py
index 19df0e8..58ba836 100644
--- a/python/qpid_dispatch/management/entity.py
+++ b/python/qpid_dispatch/management/entity.py
@@ -21,6 +21,11 @@
 AMQP Managment Entity
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import itertools, re
 import sys
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch/management/error.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch/management/error.py b/python/qpid_dispatch/management/error.py
index 0d73e92..9c2aa4b 100644
--- a/python/qpid_dispatch/management/error.py
+++ b/python/qpid_dispatch/management/error.py
@@ -21,6 +21,11 @@
 ManagementError exception class and subclasses, with status codes used by AMQP.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 #from httplib import responses as STATUS_TEXT
 #from httplib import OK, NO_CONTENT, CREATED, \
 #    BAD_REQUEST, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, INTERNAL_SERVER_ERROR, NOT_IMPLEMENTED

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/compat/__init__.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/compat/__init__.py b/python/qpid_dispatch_internal/compat/__init__.py
index 8af2d21..b37d5db 100644
--- a/python/qpid_dispatch_internal/compat/__init__.py
+++ b/python/qpid_dispatch_internal/compat/__init__.py
@@ -19,6 +19,11 @@
 
 """Compatibility hacks for older versions of python"""
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 __all__ = [
     "OrderedDict",
     "JSON_LOAD_KWARGS",

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/compat/ordereddict.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/compat/ordereddict.py b/python/qpid_dispatch_internal/compat/ordereddict.py
index 2fa007d..3d67612 100644
--- a/python/qpid_dispatch_internal/compat/ordereddict.py
+++ b/python/qpid_dispatch_internal/compat/ordereddict.py
@@ -21,6 +21,12 @@
 # Passes Python2.7's test suite and incorporates all the latest updates.
 # From http://code.activestate.com/recipes/576693/
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 try:
     from thread import get_ident as _get_ident
 except ImportError:

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/compat/subproc.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/compat/subproc.py b/python/qpid_dispatch_internal/compat/subproc.py
index 7927961..8596297 100644
--- a/python/qpid_dispatch_internal/compat/subproc.py
+++ b/python/qpid_dispatch_internal/compat/subproc.py
@@ -20,6 +20,10 @@
 """
 Implementations of some handy subprocess functions missing in python 2.6
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 from subprocess import *
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/dispatch.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/dispatch.py b/python/qpid_dispatch_internal/dispatch.py
index a8cd05b..9adc2f4 100644
--- a/python/qpid_dispatch_internal/dispatch.py
+++ b/python/qpid_dispatch_internal/dispatch.py
@@ -29,6 +29,11 @@ The C library also adds the following C extension types to this module:
 
 This module also prevents the proton python module from being accidentally loaded.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 
 import sys, ctypes
 from ctypes import c_char_p, c_long, py_object

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/display_name/display_name.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/display_name/display_name.py b/python/qpid_dispatch_internal/display_name/display_name.py
index ba92e76..2f3c5dc 100644
--- a/python/qpid_dispatch_internal/display_name/display_name.py
+++ b/python/qpid_dispatch_internal/display_name/display_name.py
@@ -23,6 +23,13 @@ user nick name.
 Maintains a dict (profile_dict) of ssl profile names to SSLProfile objects. The SSLProfile objects are built using
 the file name which contains a mapping of user identifiers to user names.
 """
+
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 import traceback
 from traceback import format_exc
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/management/agent.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/management/agent.py b/python/qpid_dispatch_internal/management/agent.py
index 6d737bb..da9cded 100644
--- a/python/qpid_dispatch_internal/management/agent.py
+++ b/python/qpid_dispatch_internal/management/agent.py
@@ -61,6 +61,10 @@ When refreshing attributes, the agent must also read C implementation object
 data that may be updated in other threads.
 
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import traceback, json, pstats
 import socket
@@ -96,7 +100,7 @@ from qpid_dispatch_internal.compat import dict_iteritems
 
 def dictstr(d):
     """Stringify a dict in the form 'k=v, k=v ...' instead of '{k:v, ...}'"""
-    return ", ".join("%s=%r" % (k, v) for k, v in dict_iteritems(d))
+    return ", ".join("%s=%s" % (k, v) for k, v in dict_iteritems(d))
 
 def required_property(prop, request):
     """Raise exception if required property is missing"""
@@ -923,7 +927,7 @@ class Agent(object):
 
         def attrvals():
             """String form of the id attribute values for error messages"""
-            return " ".join(["%s=%r" % (k, v) for k, v in dict_iteritems(ids)])
+            return " ".join(["%s=%s" % (k, v) for k, v in dict_iteritems(ids)])
 
         k, v = next(dict_iteritems(ids)) # Get the first id attribute
         found = self.entities.map_filter(None, lambda e: e.attributes.get(k) == v)
@@ -931,7 +935,7 @@ class Agent(object):
             entity = found[0]
         elif len(found) > 1:
             raise InternalServerErrorStatus(
-                "Duplicate (%s) entities with %s=%r" % (len(found), k, v))
+                "Duplicate (%s) entities with %s=%s" % (len(found), k, v))
         else:
             raise NotFoundStatus("No entity with %s" % attrvals())
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/management/config.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/management/config.py b/python/qpid_dispatch_internal/management/config.py
index 24a6f04..cd7fdfa 100644
--- a/python/qpid_dispatch_internal/management/config.py
+++ b/python/qpid_dispatch_internal/management/config.py
@@ -20,6 +20,11 @@
 """
 Configuration file parsing
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 
 import json, re, sys
 import os

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/management/qdrouter.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/management/qdrouter.py b/python/qpid_dispatch_internal/management/qdrouter.py
index e26b96b..616d903 100644
--- a/python/qpid_dispatch_internal/management/qdrouter.py
+++ b/python/qpid_dispatch_internal/management/qdrouter.py
@@ -20,6 +20,10 @@
 """
 Qpid Dispatch Router management schema and config file parsing.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import json
 from pkgutil import get_data

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/management/schema.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/management/schema.py b/python/qpid_dispatch_internal/management/schema.py
index 6e619e7..227f96a 100644
--- a/python/qpid_dispatch_internal/management/schema.py
+++ b/python/qpid_dispatch_internal/management/schema.py
@@ -26,6 +26,12 @@ check for uniqueness of enties/attributes that are specified to be unique.
 A Schema can be loaded/dumped to a json file.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 import sys
 import traceback
 from qpid_dispatch.management.entity import EntityBase

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/management/schema_doc.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/management/schema_doc.py b/python/qpid_dispatch_internal/management/schema_doc.py
index d5bbf50..56cb929 100644
--- a/python/qpid_dispatch_internal/management/schema_doc.py
+++ b/python/qpid_dispatch_internal/management/schema_doc.py
@@ -19,6 +19,9 @@
 
 """Library for generating asciidoc documentation from a L{schema.Schema}"""
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 from collections import namedtuple

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/policy/policy_local.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/policy/policy_local.py b/python/qpid_dispatch_internal/policy/policy_local.py
index 9218a56..0fda54c 100644
--- a/python/qpid_dispatch_internal/policy/policy_local.py
+++ b/python/qpid_dispatch_internal/policy/policy_local.py
@@ -20,6 +20,10 @@
 """
 
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import json
 import pdb

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/policy/policy_manager.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/policy/policy_manager.py b/python/qpid_dispatch_internal/policy/policy_manager.py
index 0445386..a5b352e 100644
--- a/python/qpid_dispatch_internal/policy/policy_manager.py
+++ b/python/qpid_dispatch_internal/policy/policy_manager.py
@@ -21,6 +21,11 @@
 
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import json
 import traceback
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/policy/policy_util.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/policy/policy_util.py b/python/qpid_dispatch_internal/policy/policy_util.py
index b74f7b5..b7a52cc 100644
--- a/python/qpid_dispatch_internal/policy/policy_util.py
+++ b/python/qpid_dispatch_internal/policy/policy_util.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import socket
 import binascii
 
@@ -26,7 +31,7 @@ class PolicyError(Exception):
     def __init__(self, value):
         self.value = value
     def __str__(self):
-        return repr(self.value)
+        return str(self.value)
 
 def is_ipv6_enabled():
     """

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/__init__.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/__init__.py b/python/qpid_dispatch_internal/router/__init__.py
index 0c1682d..4acf3b2 100644
--- a/python/qpid_dispatch_internal/router/__init__.py
+++ b/python/qpid_dispatch_internal/router/__init__.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .engine import RouterEngine
 from .address import Address
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/address.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/address.py b/python/qpid_dispatch_internal/router/address.py
index 0cff578..24cb6a4 100644
--- a/python/qpid_dispatch_internal/router/address.py
+++ b/python/qpid_dispatch_internal/router/address.py
@@ -19,7 +19,10 @@
 
 """Parse & decompose router addresses"""
 
-
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 class Address(str):
     """A router address. Immutable, hashable.

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/data.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/data.py b/python/qpid_dispatch_internal/router/data.py
index 827f621..6c1db7f 100644
--- a/python/qpid_dispatch_internal/router/data.py
+++ b/python/qpid_dispatch_internal/router/data.py
@@ -21,8 +21,15 @@
 ## Define the current protocol version.  Any messages that do not contain version
 ## information shall be considered to be coming from routers using version 0.
 ##
+
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from ..compat import PY_LONG_TYPE
 from ..compat import LONG
+from ..compat import PY_TEXT_TYPE
 
 ProtocolVersion = LONG(1)
 
@@ -58,7 +65,7 @@ class LinkState(object):
     def __init__(self, body, _id=None, _ls_seq=None, _peers=None):
         self.last_seen = 0
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.area = '0'
             self.ls_seq = getMandatory(body, 'ls_seq', PY_LONG_TYPE)
             self.peers = getMandatory(body, 'peers', dict)
@@ -112,7 +119,7 @@ class MessageHELLO(object):
     """
     def __init__(self, body, _id=None, _seen_peers=None, _instance=LONG(0)):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.area = '0'
             self.seen_peers = getMandatory(body, 'seen', list)
             self.instance = getOptional(body, 'instance', 0, PY_LONG_TYPE)
@@ -150,7 +157,7 @@ class MessageRA(object):
     """
     def __init__(self, body, _id=None, _ls_seq=None, _mobile_seq=None, _instance=LONG(0)):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.area = '0'
             self.ls_seq = getMandatory(body, 'ls_seq', PY_LONG_TYPE)
             self.mobile_seq = getMandatory(body, 'mobile_seq', PY_LONG_TYPE)
@@ -185,7 +192,7 @@ class MessageLSU(object):
     """
     def __init__(self, body, _id=None, _ls_seq=None, _ls=None, _instance=LONG(0)):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.area = '0'
             self.ls_seq = getMandatory(body, 'ls_seq', PY_LONG_TYPE)
             self.ls = LinkState(getMandatory(body, 'ls', dict))
@@ -220,7 +227,7 @@ class MessageLSR(object):
     """
     def __init__(self, body, _id=None):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.version = getOptional(body, 'pv', 0, PY_LONG_TYPE)
             self.area = '0'
         else:
@@ -245,7 +252,7 @@ class MessageMAU(object):
     """
     def __init__(self, body, _id=None, _seq=None, _add_list=None, _del_list=None, _exist_list=None):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.version = getOptional(body, 'pv', 0, PY_LONG_TYPE)
             self.area = '0'
             self.mobile_seq = getMandatory(body, 'mobile_seq', PY_LONG_TYPE)
@@ -290,7 +297,7 @@ class MessageMAR(object):
     """
     def __init__(self, body, _id=None, _have_seq=None):
         if body:
-            self.id = getMandatory(body, 'id', str)
+            self.id = getMandatory(body, 'id', PY_TEXT_TYPE)
             self.version = getOptional(body, 'pv', 0, PY_LONG_TYPE)
             self.area = '0'
             self.have_seq = getMandatory(body, 'have_seq', PY_LONG_TYPE)

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/engine.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/engine.py b/python/qpid_dispatch_internal/router/engine.py
index ef099be..31fad2c 100644
--- a/python/qpid_dispatch_internal/router/engine.py
+++ b/python/qpid_dispatch_internal/router/engine.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .data import MessageHELLO, MessageRA, MessageLSU, MessageMAU, MessageMAR, MessageLSR
 from .hello import HelloProtocol
 from .link import LinkStateEngine

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/hello.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/hello.py b/python/qpid_dispatch_internal/router/hello.py
index 6b21bc8..9bbc900 100644
--- a/python/qpid_dispatch_internal/router/hello.py
+++ b/python/qpid_dispatch_internal/router/hello.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .data import MessageHELLO
 from ..dispatch import LOG_INFO, LOG_TRACE, LOG_CRITICAL
 from ..compat import dict_keys

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/link.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/link.py b/python/qpid_dispatch_internal/router/link.py
index 09c4dfd..3b46722 100644
--- a/python/qpid_dispatch_internal/router/link.py
+++ b/python/qpid_dispatch_internal/router/link.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .data import MessageRA, MessageLSU, MessageLSR
 from ..dispatch import LOG_TRACE
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/message.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/message.py b/python/qpid_dispatch_internal/router/message.py
index 4f5df69..ed73288 100644
--- a/python/qpid_dispatch_internal/router/message.py
+++ b/python/qpid_dispatch_internal/router/message.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 """Python class to hold message data"""
 
 class Message(object):

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/mobile.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/mobile.py b/python/qpid_dispatch_internal/router/mobile.py
index c29d038..6e768c2 100644
--- a/python/qpid_dispatch_internal/router/mobile.py
+++ b/python/qpid_dispatch_internal/router/mobile.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .data import MessageMAR, MessageMAU
 from ..dispatch import LOG_TRACE
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/node.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/node.py b/python/qpid_dispatch_internal/router/node.py
index 68d40ef..8d8841e 100644
--- a/python/qpid_dispatch_internal/router/node.py
+++ b/python/qpid_dispatch_internal/router/node.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from ..dispatch import LOG_INFO, LOG_TRACE, LOG_DEBUG
 from .data import LinkState, ProtocolVersion
 from .address import Address

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/router/path.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/router/path.py b/python/qpid_dispatch_internal/router/path.py
index 548f4e8..cc089d5 100644
--- a/python/qpid_dispatch_internal/router/path.py
+++ b/python/qpid_dispatch_internal/router/path.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from ..compat import dict_items
 from ..compat import dict_keys
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/tools/__init__.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/tools/__init__.py b/python/qpid_dispatch_internal/tools/__init__.py
index ddda43d..157f503 100644
--- a/python/qpid_dispatch_internal/tools/__init__.py
+++ b/python/qpid_dispatch_internal/tools/__init__.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from .display import Display, Header, Sorter, YN, Commas, TimeLong, TimeShort, Sortable
 
 __all__ = ["Display", "Header", "Sorter", "YN", "Commas", "TimeLong", "TimeShort", "Sortable"]

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/tools/command.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/tools/command.py b/python/qpid_dispatch_internal/tools/command.py
index 6153c9e..ace9391 100644
--- a/python/qpid_dispatch_internal/tools/command.py
+++ b/python/qpid_dispatch_internal/tools/command.py
@@ -20,6 +20,9 @@
 """
 Utilities for command-line programs.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import sys, json, optparse, os

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_internal/tools/display.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/tools/display.py b/python/qpid_dispatch_internal/tools/display.py
index 86d67ac..ead8077 100644
--- a/python/qpid_dispatch_internal/tools/display.py
+++ b/python/qpid_dispatch_internal/tools/display.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 from time import strftime, gmtime

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/python/qpid_dispatch_site.py.in
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_site.py.in b/python/qpid_dispatch_site.py.in
index aec93dd..da7925a 100644
--- a/python/qpid_dispatch_site.py.in
+++ b/python/qpid_dispatch_site.py.in
@@ -20,6 +20,10 @@
 """
 INTERNAL USE ONLY - Install locations and other site information for qpid dispatch.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 from os.path import join
 from os import environ

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/run.py.in
----------------------------------------------------------------------
diff --git a/run.py.in b/run.py.in
index 5f050e2..3233e3d 100755
--- a/run.py.in
+++ b/run.py.in
@@ -18,6 +18,9 @@
 ## under the License
 ##
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 """

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/entity.c
----------------------------------------------------------------------
diff --git a/src/entity.c b/src/entity.c
index 9128752..59717ab 100644
--- a/src/entity.c
+++ b/src/entity.c
@@ -17,11 +17,11 @@
  * under the License.
  */
 
+#include "python_private.h"  // must be first!
 
 #include <qpid/dispatch/error.h>
 #include "dispatch_private.h"
 #include "entity.h"
-#include "python_private.h"
 
 struct qd_entity_t {
     PyObject py_object;      /* Any object supporting __set/get_item__, e.g. dict. */

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/error.c
----------------------------------------------------------------------
diff --git a/src/error.c b/src/error.c
index e3009cb..b62ae1d 100644
--- a/src/error.c
+++ b/src/error.c
@@ -17,19 +17,15 @@
  * under the License.
  */
 
-
-/* Make sure we get the XSI compliant strerror_r from string.h not the GNU one. */
-/*#define _POSIX_C_SOURCE 200112L
-  #undef _GNU_SOURCE*/
-#include <string.h>
+#include <qpid/dispatch/python_embedded.h>  // must be first!
 
 #include <qpid/dispatch/error.h>
 #include <qpid/dispatch/enum.h>
 #include <qpid/dispatch/log.h>
-#include <qpid/dispatch/python_embedded.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <errno.h>
+#include <string.h>
 #include "log_private.h"
 #include "aprintf.h"
 #include "python_private.h"

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/log.c
----------------------------------------------------------------------
diff --git a/src/log.c b/src/log.c
index fbb757a..c4c6c84 100644
--- a/src/log.c
+++ b/src/log.c
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#include "python_private.h"   // must be first!
+
 #include "log_private.h"
 #include "entity.h"
 #include "entity_cache.h"
@@ -32,7 +34,6 @@
 #include <string.h>
 #include <time.h>
 #include <syslog.h>
-#include "python_private.h"
 
 #define TEXT_MAX QD_LOG_TEXT_MAX
 #define LOG_MAX (QD_LOG_TEXT_MAX+128)

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/python_embedded.c
----------------------------------------------------------------------
diff --git a/src/python_embedded.c b/src/python_embedded.c
index 027f280..12464f1 100644
--- a/src/python_embedded.c
+++ b/src/python_embedded.c
@@ -17,9 +17,10 @@
  * under the License.
  */
 
-#include "entity_cache.h"
-#include "python_private.h"
 #include <qpid/dispatch/python_embedded.h>
+#include "python_private.h"
+
+#include "entity_cache.h"
 #include <qpid/dispatch/threading.h>
 #include <qpid/dispatch/log.h>
 #include <qpid/dispatch/error.h>
@@ -28,6 +29,8 @@
 #include <qpid/dispatch/router.h>
 #include <qpid/dispatch/error.h>
 
+#include <ctype.h>
+
 
 #define DISPATCH_MODULE "qpid_dispatch_internal.dispatch"
 
@@ -164,7 +167,7 @@ qd_error_t qd_py_to_composed(PyObject *value, qd_composed_field_t *field)
         qd_compose_insert_null(field);
     }
     else if (PyBool_Check(value)) {
-        qd_compose_insert_bool(field, PyLong_AS_LONG(value) ? 1 : 0);
+        qd_compose_insert_bool(field, PyLong_AsLong(value) ? 1 : 0);
     }
     else if (QD_PY_INT_CHECK(value)) {
         // We are now sure that the value is an integer type
@@ -549,27 +552,25 @@ static int IoAdapter_init(IoAdapter *self, PyObject *args, PyObject *kwds)
     char aclass    = 'L';
     char phase     = '0';
     int  treatment = QD_TREATMENT_ANYCAST_CLOSEST;
-    if (PY_MAJOR_VERSION == 2) {
-        if (!PyArg_ParseTuple(args, "OO|cci", &self->handler, &addr, &aclass, &phase, &treatment))
-            return -1;
-    } else {
-        // In Python3 all string text is unicode.  Therefore the ParseTuple format
-        // no longer allows use of a char byte for extracted characters since a
-        // single character may be up to 4 bytes in length.  Since class and
-        // phase can only be ascii we can simply downcast the returned value
-        // (being careful we do not overflow a single character).
-        unsigned int i_aclass = (int) aclass;
-        unsigned int i_phase = (int) phase;
-        if (!PyArg_ParseTuple(args, "OO|CCi", &self->handler, &addr, &i_aclass, &i_phase, &treatment))
+
+    const char *aclass_str = NULL;
+    const char *phase_str = NULL;
+    if (!PyArg_ParseTuple(args, "OO|ssi", &self->handler, &addr, &aclass_str, &phase_str, &treatment))
+        return -1;
+    if (aclass_str) {
+        if (strlen(aclass_str) != 1 || !isalpha(*aclass_str)) {
+            PyErr_SetString(PyExc_TypeError, "Address class not a single character");
             return -1;
-        if (i_aclass > 0x7F || i_phase > 0x7F) {
-            PyErr_SetString(PyExc_TypeError, "Address class or phase not a single alpha character");
+        }
+        aclass = *aclass_str;
+    }
+    if (phase_str) {
+        if (strlen(phase_str) != 1 || !isdigit(*phase_str)) {
+            PyErr_SetString(PyExc_TypeError, "Phase not a single numeric character");
             return -1;
         }
-        aclass = (char) i_aclass;
-        phase = (char) i_phase;
+        phase = *phase_str;
     }
-
     if (!PyCallable_Check(self->handler)) {
         PyErr_SetString(PyExc_TypeError, "IoAdapter.__init__ handler is not callable");
         return -1;

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/python_private.h
----------------------------------------------------------------------
diff --git a/src/python_private.h b/src/python_private.h
index ec85505..b344a0f 100644
--- a/src/python_private.h
+++ b/src/python_private.h
@@ -18,8 +18,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <stdint.h>
 #include <Python.h>
+#include <stdint.h>
 
 #if PY_MAJOR_VERSION <= 2
 // deal with the two integer types in Python2

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/schema_c.py
----------------------------------------------------------------------
diff --git a/src/schema_c.py b/src/schema_c.py
index 3c90b4d..3ce2e93 100644
--- a/src/schema_c.py
+++ b/src/schema_c.py
@@ -20,6 +20,10 @@
 """
 Generate C code from the router schema.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import re
 from qpid_dispatch_internal.management.schema import EnumType

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/src/server.c
----------------------------------------------------------------------
diff --git a/src/server.c b/src/server.c
index 64819d5..171c729 100644
--- a/src/server.c
+++ b/src/server.c
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+#include "python_private.h"             // must be first!
+#include <qpid/dispatch/python_embedded.h>
+
 #include <qpid/dispatch/ctools.h>
 #include <qpid/dispatch/threading.h>
 #include <qpid/dispatch/log.h>
@@ -31,7 +34,7 @@
 #include <proton/proactor.h>
 #include <proton/sasl.h>
 
-#include "qpid/dispatch/python_embedded.h"
+
 #include "entity.h"
 #include "entity_cache.h"
 #include "dispatch_private.h"
@@ -40,7 +43,6 @@
 #include "timer_private.h"
 #include "config.h"
 #include "remote_sasl.h"
-#include "python_private.h"
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/authservice.py
----------------------------------------------------------------------
diff --git a/tests/authservice.py b/tests/authservice.py
index c46a9ae..7693b42 100755
--- a/tests/authservice.py
+++ b/tests/authservice.py
@@ -18,7 +18,11 @@
 # under the License.
 #
 
-from __future__ import print_function, unicode_literals
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import signal, optparse
 from proton.handlers import MessagingHandler
 from proton.reactor import Container

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/management/entity.py
----------------------------------------------------------------------
diff --git a/tests/management/entity.py b/tests/management/entity.py
index b5939b0..fa27e81 100644
--- a/tests/management/entity.py
+++ b/tests/management/entity.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest
 from qpid_dispatch.management.entity import EntityBase, camelcase
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/management/qdrouter.py
----------------------------------------------------------------------
diff --git a/tests/management/qdrouter.py b/tests/management/qdrouter.py
index 46455ef..2c8f7b1 100644
--- a/tests/management/qdrouter.py
+++ b/tests/management/qdrouter.py
@@ -19,6 +19,11 @@
 
 #pylint: disable=wildcard-import,unused-wildcard-import,missing-docstring,too-many-public-methods
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest, sys
 from qpid_dispatch_internal.management.config import Config
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/management/schema.py
----------------------------------------------------------------------
diff --git a/tests/management/schema.py b/tests/management/schema.py
index ad2340b..64b0ab5 100644
--- a/tests/management/schema.py
+++ b/tests/management/schema.py
@@ -20,6 +20,11 @@
 
 #pylint: disable=wildcard-import,missing-docstring,too-many-public-methods
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest, json
 from qpid_dispatch_internal.management.schema import Schema, BooleanType, EnumType, AttributeType, ValidationError, EnumValue, EntityType
 from qpid_dispatch_internal.compat import OrderedDict

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/mock/__init__.py
----------------------------------------------------------------------
diff --git a/tests/mock/__init__.py b/tests/mock/__init__.py
index 9e870bb..3a008f0 100644
--- a/tests/mock/__init__.py
+++ b/tests/mock/__init__.py
@@ -20,6 +20,10 @@
 """
 Mock implementation of the dispatch C extension module for use in unit tests.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 from qpid_dispatch_internal import dispatch as real_dispatch
 from . import dispatch as mock_dispatch

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/mock/dispatch.py
----------------------------------------------------------------------
diff --git a/tests/mock/dispatch.py b/tests/mock/dispatch.py
index 5a34e43..ca6b370 100644
--- a/tests/mock/dispatch.py
+++ b/tests/mock/dispatch.py
@@ -19,8 +19,13 @@
 """
 Mock implementation of the dispatch C extension module for use in unit tests.
 """
+
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
+
 LOG_TRACE    = 1
 LOG_DEBUG    = 2
 LOG_INFO     = 4

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/router_engine_test.py
----------------------------------------------------------------------
diff --git a/tests/router_engine_test.py b/tests/router_engine_test.py
index 0442088..58d27ef 100644
--- a/tests/router_engine_test.py
+++ b/tests/router_engine_test.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import os

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/router_policy_test.py
----------------------------------------------------------------------
diff --git a/tests/router_policy_test.py b/tests/router_policy_test.py
index 3421250..a437668 100644
--- a/tests/router_policy_test.py
+++ b/tests/router_policy_test.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import unittest2 as unittest

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/run_system_tests.py
----------------------------------------------------------------------
diff --git a/tests/run_system_tests.py b/tests/run_system_tests.py
index 460692f..2e4c959 100644
--- a/tests/run_system_tests.py
+++ b/tests/run_system_tests.py
@@ -24,6 +24,10 @@ Note that each system test is an executable script, you can run them directly.
 Run without any environment settings, this will test a dispatch router installed in
 the standard system places. Use run.py or config.sh to run against dispatch build.
 """
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import os
 import sys

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_test.py
----------------------------------------------------------------------
diff --git a/tests/system_test.py b/tests/system_test.py
index 0ff97da..37056b6 100755
--- a/tests/system_test.py
+++ b/tests/system_test.py
@@ -27,6 +27,10 @@ Features:
 - Tools to manipulate qdrouter configuration files.
 - Sundry other tools.
 """
+
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import errno, os, time, socket, random, subprocess, shutil, unittest, __main__, re, sys

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_auth_service_plugin.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_auth_service_plugin.py b/tests/system_tests_auth_service_plugin.py
index 013c87e..5b48e40 100644
--- a/tests/system_tests_auth_service_plugin.py
+++ b/tests/system_tests_auth_service_plugin.py
@@ -17,8 +17,12 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
+
 import unittest2 as unittest
 import os
 from subprocess import PIPE, Popen

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_authz_service_plugin.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_authz_service_plugin.py b/tests/system_tests_authz_service_plugin.py
index 994079d..c3180a6 100644
--- a/tests/system_tests_authz_service_plugin.py
+++ b/tests/system_tests_authz_service_plugin.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 import os, json
 from subprocess import PIPE, Popen, STDOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_autolinks.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_autolinks.py b/tests/system_tests_autolinks.py
index 952644b..a74bcef 100644
--- a/tests/system_tests_autolinks.py
+++ b/tests/system_tests_autolinks.py
@@ -17,6 +17,12 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 import unittest2 as unittest
 import json
 from proton import Message

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_bad_configuration.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_bad_configuration.py b/tests/system_tests_bad_configuration.py
index 8dd379d..9fe0522 100644
--- a/tests/system_tests_bad_configuration.py
+++ b/tests/system_tests_bad_configuration.py
@@ -23,6 +23,12 @@ that might cause problems, or caused issues in the past.
 For example, unresolvable host names.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 from threading import Timer
 import re
 from subprocess import PIPE, STDOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_broker.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_broker.py b/tests/system_tests_broker.py
index bef3008..ab94911 100644
--- a/tests/system_tests_broker.py
+++ b/tests/system_tests_broker.py
@@ -21,6 +21,13 @@
 System tests involving one or more brokers and dispatch routers integrated
 with waypoints.
 """
+
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
+
 import unittest2 as unittest
 import system_test
 from system_test import Qdrouterd, message, MISSING_REQUIREMENTS

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_cmdline_parsing.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_cmdline_parsing.py b/tests/system_tests_cmdline_parsing.py
index 75526fb..7fe3f2d 100644
--- a/tests/system_tests_cmdline_parsing.py
+++ b/tests/system_tests_cmdline_parsing.py
@@ -24,6 +24,11 @@ in order to ensure it won't break, causing bad experiences
 to the users.
 """
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import os
 import signal
 from subprocess import PIPE, STDOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_default_distribution.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_default_distribution.py b/tests/system_tests_default_distribution.py
index 2bb9b4d..a265969 100644
--- a/tests/system_tests_default_distribution.py
+++ b/tests/system_tests_default_distribution.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 import re
 from subprocess import PIPE

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_delivery_abort.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_delivery_abort.py b/tests/system_tests_delivery_abort.py
index 6051ebf..909b805 100644
--- a/tests/system_tests_delivery_abort.py
+++ b/tests/system_tests_delivery_abort.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Message, Timeout
 from system_test import TestCase, Qdrouterd, main_module

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_deprecated.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_deprecated.py b/tests/system_tests_deprecated.py
index 6809e94..6d5e9ed 100644
--- a/tests/system_tests_deprecated.py
+++ b/tests/system_tests_deprecated.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from system_test import TestCase, Qdrouterd
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_disallow_link_resumable_link_route.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_disallow_link_resumable_link_route.py b/tests/system_tests_disallow_link_resumable_link_route.py
index 05d2ae8..f485601 100644
--- a/tests/system_tests_disallow_link_resumable_link_route.py
+++ b/tests/system_tests_disallow_link_resumable_link_route.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from time import sleep, time
 from subprocess import PIPE, STDOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_distribution.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_distribution.py b/tests/system_tests_distribution.py
index b3484fd..9a2ae71 100644
--- a/tests/system_tests_distribution.py
+++ b/tests/system_tests_distribution.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import unittest2 as unittest

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_drain.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_drain.py b/tests/system_tests_drain.py
index b2ecadb..b9fd547 100644
--- a/tests/system_tests_drain.py
+++ b/tests/system_tests_drain.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from system_test import TestCase, Qdrouterd, main_module
 from system_tests_drain_support import DrainMessagesHandler, DrainOneMessageHandler

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_drain_support.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_drain_support.py b/tests/system_tests_drain_support.py
index 2600ec0..930a486 100644
--- a/tests/system_tests_drain_support.py
+++ b/tests/system_tests_drain_support.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton.handlers import MessagingHandler
 from proton.reactor import Container
@@ -208,4 +213,4 @@ class DrainNoMoreMessagesHandler(MessagingHandler):
 
 
 if __name__ == '__main__':
-    unittest.main(main_module())
\ No newline at end of file
+    unittest.main(main_module())

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_dynamic_terminus.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_dynamic_terminus.py b/tests/system_tests_dynamic_terminus.py
index 8a76e53..4ad5e19 100644
--- a/tests/system_tests_dynamic_terminus.py
+++ b/tests/system_tests_dynamic_terminus.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Message, Timeout
 from system_test import TestCase, Qdrouterd, main_module, TIMEOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_exchange_bindings.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_exchange_bindings.py b/tests/system_tests_exchange_bindings.py
index 1449f77..e8325a4 100644
--- a/tests/system_tests_exchange_bindings.py
+++ b/tests/system_tests_exchange_bindings.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import ast
 import unittest2 as unittest
 from time import sleep

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_failover_list.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_failover_list.py b/tests/system_tests_failover_list.py
index 6a5fcb4..123ceb3 100644
--- a/tests/system_tests_failover_list.py
+++ b/tests/system_tests_failover_list.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Timeout
 from system_test import TestCase, Qdrouterd, main_module, TIMEOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_handle_failover.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_handle_failover.py b/tests/system_tests_handle_failover.py
index dcd9893..f2615c2 100644
--- a/tests/system_tests_handle_failover.py
+++ b/tests/system_tests_handle_failover.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from threading import Timer
 import unittest2 as unittest
 import json, re

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_http.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_http.py b/tests/system_tests_http.py
index a436e3a..2ba494c 100644
--- a/tests/system_tests_http.py
+++ b/tests/system_tests_http.py
@@ -16,6 +16,10 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import unittest2 as unittest
 import os, threading, sys, urllib2

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_link_routes.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_link_routes.py b/tests/system_tests_link_routes.py
index 713d8f2..8740c80 100644
--- a/tests/system_tests_link_routes.py
+++ b/tests/system_tests_link_routes.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from time import sleep, time
 from subprocess import PIPE, STDOUT
@@ -771,7 +776,7 @@ class DeliveryTagsTest(MessagingHandler):
         self.delivery_tag_verified = False
         # The delivery tag we are going to send in the transfer frame
         # We will later make sure that the same delivery tag shows up on the receiving end in the link routed case.
-        self.delivery_tag = '92319'
+        self.delivery_tag = b'92319'
         self.error = None
 
     def timeout(self):

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_log_message_components.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_log_message_components.py b/tests/system_tests_log_message_components.py
index e66dcce..c497839 100644
--- a/tests/system_tests_log_message_components.py
+++ b/tests/system_tests_log_message_components.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 import json
 from proton import Message, symbol

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_management.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_management.py b/tests/system_tests_management.py
index 51e8ad3..f0a12b5 100644
--- a/tests/system_tests_management.py
+++ b/tests/system_tests_management.py
@@ -19,6 +19,11 @@
 
 """System tests for management of qdrouter"""
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 import system_test, re, os, json
 from proton.handlers import MessagingHandler

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_multi_tenancy.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_multi_tenancy.py b/tests/system_tests_multi_tenancy.py
index 78dc1d8..2319236 100644
--- a/tests/system_tests_multi_tenancy.py
+++ b/tests/system_tests_multi_tenancy.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Message, Timeout
 from system_test import TestCase, Qdrouterd, main_module, TIMEOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_one_router.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_one_router.py b/tests/system_tests_one_router.py
index a15866f..ea8e13f 100644
--- a/tests/system_tests_one_router.py
+++ b/tests/system_tests_one_router.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Condition, Message, Delivery, PENDING, ACCEPTED, REJECTED, Url, symbol, Timeout
 from system_test import TestCase, Qdrouterd, main_module, TIMEOUT
@@ -2664,7 +2669,9 @@ class RejectDispositionTest(MessagingHandler):
         self.sent = False
         self.received_error = False
         self.dest = "rejectDispositionTest"
-        self.error_description = 'you were out of luck this time!'
+        # explicitly convert to str due to
+        # https://issues.apache.org/jira/browse/PROTON-1843
+        self.error_description = str('you were out of luck this time!')
         self.error_name = u'amqp:internal-error'
         self.reject_count_match = False
         self.rejects_at_start = 0

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_policy.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_policy.py b/tests/system_tests_policy.py
index 4c81496..b747f0d 100644
--- a/tests/system_tests_policy.py
+++ b/tests/system_tests_policy.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest as unittest
 import os, json
 from system_test import TestCase, Qdrouterd, main_module, Process, TIMEOUT, DIR
@@ -735,7 +740,7 @@ class PolicyLinkNamePatternTest(TestCase):
             qdm_out = self.run_qdmanage('create --type=vhost --name=DISPATCH-1993-2 --stdin', input=self.disallowed_source())
         except Exception as e:
             exception = True
-            self.assertTrue("InternalServerErrorStatus: PolicyError: \"Policy 'DISPATCH-1993-2' is invalid:" in str(e))
+            self.assertTrue("InternalServerErrorStatus: PolicyError: Policy 'DISPATCH-1993-2' is invalid:" in str(e))
         self.assertTrue(exception)
 
         # attempt another create that should be rejected
@@ -745,7 +750,7 @@ class PolicyLinkNamePatternTest(TestCase):
             qdm_out = self.run_qdmanage('create --type=vhost --name=DISPATCH-1993-3 --stdin', input=self.disallowed_target())
         except Exception as e:
             exception = True
-            self.assertTrue("InternalServerErrorStatus: PolicyError: \"Policy 'DISPATCH-1993-3' is invalid:" in str(e))
+            self.assertTrue("InternalServerErrorStatus: PolicyError: Policy 'DISPATCH-1993-3' is invalid:" in str(e))
         self.assertTrue(exception)
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_protocol_family.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_protocol_family.py b/tests/system_tests_protocol_family.py
index 0aea0ef..16aea3d 100644
--- a/tests/system_tests_protocol_family.py
+++ b/tests/system_tests_protocol_family.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from proton import Message
 from proton.handlers import MessagingHandler
@@ -149,4 +154,4 @@ class SimpleSndRecv(MessagingHandler):
 
 
 if __name__ == '__main__':
-    unittest.main(main_module())
\ No newline at end of file
+    unittest.main(main_module())

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_protocol_settings.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_protocol_settings.py b/tests/system_tests_protocol_settings.py
index 523a03b..af3a4f1 100644
--- a/tests/system_tests_protocol_settings.py
+++ b/tests/system_tests_protocol_settings.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest
 from system_test import TestCase, Qdrouterd, main_module
 from proton.utils import BlockingConnection

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_qdmanage.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_qdmanage.py b/tests/system_tests_qdmanage.py
index 0275e53..15012ce 100644
--- a/tests/system_tests_qdmanage.py
+++ b/tests/system_tests_qdmanage.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import json, unittest2 as unittest, os
 
 from system_test import TestCase, Process, Qdrouterd, main_module, TIMEOUT, DIR
@@ -408,7 +413,7 @@ class QdmanageTest(TestCase):
             self.run_qdmanage(delete_command)
         except Exception as e:
             exception_occurred = True
-            self.assertTrue("NotFoundStatus: No entity with name='" + name + "'" in str(e))
+            self.assertTrue(("NotFoundStatus: No entity with name=%s" % name) in str(e))
 
         self.assertTrue(exception_occurred)
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_qdstat.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_qdstat.py b/tests/system_tests_qdstat.py
index c786598..a043d9f 100644
--- a/tests/system_tests_qdstat.py
+++ b/tests/system_tests_qdstat.py
@@ -17,6 +17,11 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import os
 import re
 import system_test

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_sasl_plain.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_sasl_plain.py b/tests/system_tests_sasl_plain.py
index 1b67b2c..2285eee 100644
--- a/tests/system_tests_sasl_plain.py
+++ b/tests/system_tests_sasl_plain.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest2 as unittest, os
 from subprocess import PIPE, Popen
 from system_test import TestCase, Qdrouterd, main_module, DIR, TIMEOUT

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_topology.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_topology.py b/tests/system_tests_topology.py
index e5af286..afe5633 100644
--- a/tests/system_tests_topology.py
+++ b/tests/system_tests_topology.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import unittest2 as unittest

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_topology_addition.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_topology_addition.py b/tests/system_tests_topology_addition.py
index 51d2643..2e06b55 100644
--- a/tests/system_tests_topology_addition.py
+++ b/tests/system_tests_topology_addition.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 import unittest, os, json
 from subprocess      import PIPE, STDOUT
 from proton          import Message, PENDING, ACCEPTED, REJECTED, RELEASED, SSLDomain, SSLUnavailable, Timeout

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_topology_disposition.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_topology_disposition.py b/tests/system_tests_topology_disposition.py
index d902ad5..035ba7e 100644
--- a/tests/system_tests_topology_disposition.py
+++ b/tests/system_tests_topology_disposition.py
@@ -17,6 +17,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import unittest, os, json

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_two_routers.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_two_routers.py b/tests/system_tests_two_routers.py
index 83902fe..2a86c3d 100644
--- a/tests/system_tests_two_routers.py
+++ b/tests/system_tests_two_routers.py
@@ -17,6 +17,11 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
+
 from time import sleep
 import unittest2 as unittest
 import logging

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_user_id.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_user_id.py b/tests/system_tests_user_id.py
index 52093a7..827cd0f 100644
--- a/tests/system_tests_user_id.py
+++ b/tests/system_tests_user_id.py
@@ -17,6 +17,10 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import os
 import unittest2 as unittest

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tests/system_tests_user_id_proxy.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_user_id_proxy.py b/tests/system_tests_user_id_proxy.py
index ecea4cc..c2ea86f 100644
--- a/tests/system_tests_user_id_proxy.py
+++ b/tests/system_tests_user_id_proxy.py
@@ -17,6 +17,10 @@
 # under the License
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
+from __future__ import print_function
 
 import os
 import unittest2 as unittest

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tools/qdmanage
----------------------------------------------------------------------
diff --git a/tools/qdmanage b/tools/qdmanage
index bacef3c..ffef1f1 100755
--- a/tools/qdmanage
+++ b/tools/qdmanage
@@ -19,6 +19,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import sys, json, re

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tools/qdstat
----------------------------------------------------------------------
diff --git a/tools/qdstat b/tools/qdstat
index 6b8db4d..1e3a3a3 100755
--- a/tools/qdstat
+++ b/tools/qdstat
@@ -19,6 +19,9 @@
 # under the License.
 #
 
+from __future__ import unicode_literals
+from __future__ import division
+from __future__ import absolute_import
 from __future__ import print_function
 
 import os

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/7bdd55c7/tox.ini
----------------------------------------------------------------------
diff --git a/tox.ini b/tox.ini
index 879569f..6f749fd 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py26,py27,py35,py36
+envlist = py27,py35,py36
 skipsdist = True
 minversion = 1.4
 # note: when minversion is >= 1.7.2, uncomment the
@@ -12,8 +12,9 @@ minversion = 1.4
 commands = flake8 --count python console doc tests tools
 deps = hacking
 
-[testenv:py26]
-basepython = python2.6
+# flake8 no longer supports python2.6
+# [testenv:py26]
+# basepython = python2.6
 
 [testenv:py27]
 basepython = python2.7


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org