PROTON-490: futurize the python code under the test directory
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/979471f5 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/979471f5 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/979471f5 Branch: refs/heads/master Commit: 979471f5ee355b3eca43f8cf176ebc7e241ab603 Parents: aae1d20 Author: Ken Giusti <[email protected]> Authored: Fri Apr 17 09:39:51 2015 -0400 Committer: Ken Giusti <[email protected]> Committed: Mon Apr 20 12:46:47 2015 -0400 ---------------------------------------------------------------------- tests/python/proton_tests/codec.py | 87 +++++++++++++++-------------- tests/python/proton_tests/common.py | 24 +++++++- tests/python/proton_tests/engine.py | 8 ++- tests/python/proton_tests/interop.py | 21 +++---- tests/python/proton_tests/message.py | 3 +- tests/python/proton_tests/messenger.py | 9 ++- tests/python/proton_tests/reactor.py | 3 +- tests/python/proton_tests/sasl.py | 6 +- tests/python/proton_tests/soak.py | 3 +- tests/python/proton_tests/ssl.py | 11 ++-- tests/python/proton_tests/transport.py | 9 ++- tests/python/proton_tests/url.py | 3 +- tests/smoke/recv.py | 3 +- tests/smoke/send.py | 5 +- tests/tools/apps/python/msgr-recv.py | 1 + tests/tools/apps/python/msgr-send.py | 1 + 16 files changed, 121 insertions(+), 76 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/codec.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/codec.py b/tests/python/proton_tests/codec.py index 81bb4de..e8893cf 100644 --- a/tests/python/proton_tests/codec.py +++ b/tests/python/proton_tests/codec.py @@ -17,7 +17,8 @@ # under the License. # -import os, common, sys +import os, sys +from . import common from proton import * try: from uuid import uuid4 @@ -36,58 +37,58 @@ class Test(common.Test): class DataTest(Test): def testTopLevelNext(self): - assert self.data.next() is None + assert next(self.data) is None self.data.put_null() self.data.put_bool(False) self.data.put_int(0) - assert self.data.next() is None + assert next(self.data) is None self.data.rewind() - assert self.data.next() == Data.NULL - assert self.data.next() == Data.BOOL - assert self.data.next() == Data.INT - assert self.data.next() is None + assert next(self.data) == Data.NULL + assert next(self.data) == Data.BOOL + assert next(self.data) == Data.INT + assert next(self.data) is None def testNestedNext(self): - assert self.data.next() is None + assert next(self.data) is None self.data.put_null() - assert self.data.next() is None + assert next(self.data) is None self.data.put_list() - assert self.data.next() is None + assert next(self.data) is None self.data.put_bool(False) - assert self.data.next() is None + assert next(self.data) is None self.data.rewind() - assert self.data.next() is Data.NULL - assert self.data.next() is Data.LIST + assert next(self.data) is Data.NULL + assert next(self.data) is Data.LIST self.data.enter() - assert self.data.next() is None + assert next(self.data) is None self.data.put_ubyte(0) - assert self.data.next() is None + assert next(self.data) is None self.data.put_uint(0) - assert self.data.next() is None + assert next(self.data) is None self.data.put_int(0) - assert self.data.next() is None + assert next(self.data) is None self.data.exit() - assert self.data.next() is Data.BOOL - assert self.data.next() is None + assert next(self.data) is Data.BOOL + assert next(self.data) is None self.data.rewind() - assert self.data.next() is Data.NULL - assert self.data.next() is Data.LIST + assert next(self.data) is Data.NULL + assert next(self.data) is Data.LIST assert self.data.enter() - assert self.data.next() is Data.UBYTE - assert self.data.next() is Data.UINT - assert self.data.next() is Data.INT - assert self.data.next() is None + assert next(self.data) is Data.UBYTE + assert next(self.data) is Data.UINT + assert next(self.data) is Data.INT + assert next(self.data) is None assert self.data.exit() - assert self.data.next() is Data.BOOL - assert self.data.next() is None + assert next(self.data) is Data.BOOL + assert next(self.data) is None def testEnterExit(self): - assert self.data.next() is None + assert next(self.data) is None assert not self.data.enter() self.data.put_list() assert self.data.enter() - assert self.data.next() is None + assert next(self.data) is None self.data.put_list() assert self.data.enter() self.data.put_list() @@ -100,19 +101,19 @@ class DataTest(Test): assert self.data.get_list() == 1 assert not self.data.exit() assert self.data.get_list() == 1 - assert self.data.next() is None + assert next(self.data) is None self.data.rewind() - assert self.data.next() is Data.LIST + assert next(self.data) is Data.LIST assert self.data.get_list() == 1 assert self.data.enter() - assert self.data.next() is Data.LIST + assert next(self.data) is Data.LIST assert self.data.get_list() == 1 assert self.data.enter() - assert self.data.next() is Data.LIST + assert next(self.data) is Data.LIST assert self.data.get_list() == 0 assert self.data.enter() - assert self.data.next() is None + assert next(self.data) is None assert self.data.exit() assert self.data.get_list() == 0 assert self.data.exit() @@ -126,7 +127,7 @@ class DataTest(Test): """More informative exception from putters, include bad value""" try: putter(v) - except Exception, e: + except Exception: etype, value, trace = sys.exc_info() raise etype, "%s(%r): %s" % (putter.__name__, v, value), trace return putter @@ -168,7 +169,7 @@ class DataTest(Test): self.put(putter, v) self.data.exit() self.data.rewind() - assert self.data.next() == Data.ARRAY + assert next(self.data) == Data.ARRAY count, described, type = self.data.get_array() assert count == len(values), count if dtype is None: @@ -178,17 +179,17 @@ class DataTest(Test): assert type == aTYPE, type assert self.data.enter() if described: - assert self.data.next() == dTYPE + assert next(self.data) == dTYPE getter = getattr(self.data, "get_%s" % dtype) gotten = getter() assert gotten == descriptor, gotten if values: getter = getattr(self.data, "get_%s" % atype) for v in values: - assert self.data.next() == aTYPE + assert next(self.data) == aTYPE gotten = getter() assert gotten == v, gotten - assert self.data.next() is None + assert next(self.data) is None assert self.data.exit() def testStringArray(self): @@ -230,7 +231,7 @@ class DataTest(Test): self.data.rewind() for v in values: - vtype = self.data.next() + vtype = next(self.data) assert vtype == ntype, vtype gotten = getter() assert eq(gotten, v), (gotten, v) @@ -245,7 +246,7 @@ class DataTest(Test): cgetter = getattr(copy, "get_%s" % dtype) for v in values: - vtype = copy.next() + vtype = next(copy) assert vtype == ntype, vtype gotten = cgetter() assert eq(gotten, v), (gotten, v) @@ -345,7 +346,7 @@ class DataTest(Test): data = Data() data.decode(enc) data.rewind() - assert data.next() + assert next(data) copy = data.get_object() assert copy == obj, (copy, obj) @@ -355,7 +356,7 @@ class DataTest(Test): symbol("list"): [1, 2, 3, 4]} self.data.put_object(obj) self.data.rewind() - self.data.next() + next(self.data) self.data.enter() self.data.narrow() assert self.data.lookup("pi") http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/common.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/common.py b/tests/python/proton_tests/common.py index 1b8dbdb..585ea02 100644 --- a/tests/python/proton_tests/common.py +++ b/tests/python/proton_tests/common.py @@ -27,6 +27,27 @@ from proton import Connection, Transport, SASL, Endpoint, Delivery, SSL from proton.reactor import Container from proton.handlers import CHandshaker, CFlowController +if sys.version_info[0] == 2 and sys.version_info[1] < 6: + # this is for compatibility, apparently the version of jython we + # use doesn't have the next() builtin. + # we should remove this when we upgrade to a python 2.6+ compatible version + # of jython + #_DEF = object() This causes the test loader to fail (why?) + class _dummy(): pass + _DEF = _dummy + + def next(iter, default=_DEF): + try: + return iter.next() + except StopIteration: + if default is _DEF: + raise + else: + return default + # I may goto hell for this: + import __builtin__ + __builtin__.__dict__['next'] = next + def free_tcp_ports(count=1): """ return a list of 'count' TCP ports that are free to used (ie. unbound) @@ -224,7 +245,8 @@ class MessengerApp(object): cmd.insert(0, foundfile) cmd.insert(0, sys.executable) self._process = Popen(cmd, stdout=PIPE, stderr=STDOUT, bufsize=4096) - except OSError, e: + except OSError: + e = sys.exc_info()[1] print("ERROR: '%s'" % e) assert False, "Unable to execute command '%s', is it in your PATH?" % cmd[0] self._ready() # wait for it to initialize http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/engine.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/engine.py b/tests/python/proton_tests/engine.py index 99125d9..7835792 100644 --- a/tests/python/proton_tests/engine.py +++ b/tests/python/proton_tests/engine.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -17,10 +18,11 @@ # under the License. # -import os, common, gc +import os, gc +from . import common from time import time, sleep from proton import * -from common import pump +from .common import pump from proton.reactor import Reactor # older versions of gc do not provide the garbage list @@ -1836,7 +1838,7 @@ class PipelineTest(Test): assert rcv.queued == 0, rcv.queued import sys -from common import Skipped +from .common import Skipped class ServerTest(Test): http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/interop.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/interop.py b/tests/python/proton_tests/interop.py index baf998d..1ef92dd 100644 --- a/tests/python/proton_tests/interop.py +++ b/tests/python/proton_tests/interop.py @@ -18,7 +18,8 @@ # from proton import * -import os, common +import os +from . import common def find_test_interop_dir(): @@ -70,7 +71,7 @@ class InteropTest(common.Test): self.decode_data(body) def assert_next(self, type, value): - next_type = self.data.next() + next_type = next(self.data) assert next_type == type, "Type mismatch: %s != %s"%( Data.type_names[next_type], Data.type_names[type]) next_value = self.data.get_object() @@ -79,7 +80,7 @@ class InteropTest(common.Test): def test_message(self): self.decode_message_file("message") self.assert_next(Data.STRING, "hello") - assert self.data.next() is None + assert next(self.data) is None def test_primitives(self): self.decode_data_file("primitives") @@ -94,7 +95,7 @@ class InteropTest(common.Test): self.assert_next(Data.LONG, -12345) self.assert_next(Data.FLOAT, 0.125) self.assert_next(Data.DOUBLE, 0.125) - assert self.data.next() is None + assert next(self.data) is None def test_strings(self): self.decode_data_file("strings") @@ -104,20 +105,20 @@ class InteropTest(common.Test): self.assert_next(Data.BINARY, "") self.assert_next(Data.STRING, "") self.assert_next(Data.SYMBOL, "") - assert self.data.next() is None + assert next(self.data) is None def test_described(self): self.decode_data_file("described") self.assert_next(Data.DESCRIBED, Described("foo-descriptor", "foo-value")) self.data.exit() - assert self.data.next() == Data.DESCRIBED + assert next(self.data) == Data.DESCRIBED self.data.enter() self.assert_next(Data.INT, 12) self.assert_next(Data.INT, 13) self.data.exit() - assert self.data.next() is None + assert next(self.data) is None def test_described_array(self): self.decode_data_file("described_array") @@ -128,17 +129,17 @@ class InteropTest(common.Test): self.assert_next(Data.ARRAY, Array(UNDESCRIBED, Data.INT, *range(0,100))) self.assert_next(Data.ARRAY, Array(UNDESCRIBED, Data.STRING, *["a", "b", "c"])) self.assert_next(Data.ARRAY, Array(UNDESCRIBED, Data.INT)) - assert self.data.next() is None + assert next(self.data) is None def test_lists(self): self.decode_data_file("lists") self.assert_next(Data.LIST, [32, "foo", True]) self.assert_next(Data.LIST, []) - assert self.data.next() is None + assert next(self.data) is None def test_maps(self): self.decode_data_file("maps") self.assert_next(Data.MAP, {"one":1, "two":2, "three":3 }) self.assert_next(Data.MAP, {1:"one", 2:"two", 3:"three"}) self.assert_next(Data.MAP, {}) - assert self.data.next() is None + assert next(self.data) is None http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/message.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/message.py b/tests/python/proton_tests/message.py index 6bf94fe..3366366 100644 --- a/tests/python/proton_tests/message.py +++ b/tests/python/proton_tests/message.py @@ -17,7 +17,8 @@ # under the License. # -import os, common +import os +from . import common from proton import * try: from uuid import uuid4 http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/messenger.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/messenger.py b/tests/python/proton_tests/messenger.py index c7c7dd3..03a1b6b 100644 --- a/tests/python/proton_tests/messenger.py +++ b/tests/python/proton_tests/messenger.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -17,11 +18,12 @@ # under the License. # -import os, common, sys, traceback +import os, sys, traceback +from . import common from proton import * from threading import Thread, Event from time import sleep, time -from common import Skipped +from .common import Skipped class Test(common.Test): @@ -180,7 +182,8 @@ class MessengerTest(Test): try: self.client.put(msg) assert False, "Expecting MessengerException" - except MessengerException, exc: + except MessengerException: + exc = sys.exc_info()[1] err = str(exc) assert "unable to send to address: totally-bogus-address" in err, err http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/reactor.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/reactor.py b/tests/python/proton_tests/reactor.py index 4e660a5..6afee30 100644 --- a/tests/python/proton_tests/reactor.py +++ b/tests/python/proton_tests/reactor.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -17,7 +18,7 @@ # under the License. # -from common import Test +from .common import Test from proton.reactor import Reactor class Barf(Exception): http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/sasl.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/sasl.py b/tests/python/proton_tests/sasl.py index a14a0db..0d6761f 100644 --- a/tests/python/proton_tests/sasl.py +++ b/tests/python/proton_tests/sasl.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -17,9 +18,10 @@ # under the License. # -import os, common +import os +from . import common from proton import * -from common import pump +from .common import pump class Test(common.Test): pass http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/soak.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/soak.py b/tests/python/proton_tests/soak.py index 9e5ceab..0a6e693 100644 --- a/tests/python/proton_tests/soak.py +++ b/tests/python/proton_tests/soak.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +19,7 @@ # import os import sys -from common import Test, Skipped, free_tcp_ports, \ +from .common import Test, Skipped, free_tcp_ports, \ MessengerReceiverC, MessengerSenderC, \ MessengerReceiverValgrind, MessengerSenderValgrind, \ MessengerReceiverPython, MessengerSenderPython, \ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/ssl.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/ssl.py b/tests/python/proton_tests/ssl.py index f5fae3f..fd5aaf1 100644 --- a/tests/python/proton_tests/ssl.py +++ b/tests/python/proton_tests/ssl.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -17,13 +18,14 @@ # under the License. # -import os, common +import os +from . import common import random import string import subprocess from proton import * -from common import Skipped, pump +from .common import Skipped, pump def _testpath(file): @@ -791,7 +793,7 @@ class SslTest(common.Test): try: ssl3 = SSL(transport, self.server_domain) assert False, "Expected error did not occur!" - except SSLException, e: + except SSLException: pass class MessengerSSLTests(common.Test): @@ -834,7 +836,8 @@ class MessengerSSLTests(common.Test): self.server.subscribe("amqps://~0.0.0.0:12345") if exception is not None: assert False, "expected failure did not occur" - except MessengerException, e: + except MessengerException: + e = sys.exc_info()[1] if exception: assert exception in str(e), str(e) else: http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/transport.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/transport.py b/tests/python/proton_tests/transport.py index dcf7636..512d816 100644 --- a/tests/python/proton_tests/transport.py +++ b/tests/python/proton_tests/transport.py @@ -17,7 +17,8 @@ # under the License. # -import os, common +import os +from . import common from proton import * @@ -119,7 +120,8 @@ class TransportTest(Test): assert n > 0, n try: self.transport.close_head() - except TransportException, e: + except TransportException: + e = sys.exc_info()[1] assert "aborted" in str(e), str(e) n = self.transport.pending() assert n < 0, n @@ -129,7 +131,8 @@ class TransportTest(Test): assert n > 0, n try: self.transport.close_tail() - except TransportException, e: + except TransportException: + e = sys.exc_info()[1] assert "aborted" in str(e), str(e) n = self.transport.capacity() assert n < 0, n http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/python/proton_tests/url.py ---------------------------------------------------------------------- diff --git a/tests/python/proton_tests/url.py b/tests/python/proton_tests/url.py index 77a16ff..40a257c 100644 --- a/tests/python/proton_tests/url.py +++ b/tests/python/proton_tests/url.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +19,7 @@ # -import common +from . import common from proton import Url class UrlTest(common.Test): http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/smoke/recv.py ---------------------------------------------------------------------- diff --git a/tests/smoke/recv.py b/tests/smoke/recv.py index 3b2b0e5..e6aa2b6 100755 --- a/tests/smoke/recv.py +++ b/tests/smoke/recv.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function import sys from proton import * @@ -16,7 +17,7 @@ messenger.start() while True: messenger.recv() messenger.get(message) - print "Got: %s" % message + print("Got: %s" % message) messenger.accept() messenger.stop() http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/smoke/send.py ---------------------------------------------------------------------- diff --git a/tests/smoke/send.py b/tests/smoke/send.py index 1aed9c8..7daee01 100755 --- a/tests/smoke/send.py +++ b/tests/smoke/send.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +from __future__ import print_function import sys from proton import * @@ -17,7 +18,7 @@ message.body = u"Hello World!" messenger.start() tracker = messenger.put(message) -print "Put: %s" % message +print("Put: %s" % message) messenger.send() -print "Status: %s" % messenger.status(tracker) +print("Status: %s" % messenger.status(tracker)) messenger.stop() http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/tools/apps/python/msgr-recv.py ---------------------------------------------------------------------- diff --git a/tests/tools/apps/python/msgr-recv.py b/tests/tools/apps/python/msgr-recv.py index 73c2a3a..079c871 100755 --- a/tests/tools/apps/python/msgr-recv.py +++ b/tests/tools/apps/python/msgr-recv.py @@ -18,6 +18,7 @@ # specific language governing permissions and limitations # under the License. # +from __future__ import print_function import sys, optparse, time import logging from proton import * http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/979471f5/tests/tools/apps/python/msgr-send.py ---------------------------------------------------------------------- diff --git a/tests/tools/apps/python/msgr-send.py b/tests/tools/apps/python/msgr-send.py index 872122b..a2f67c5 100755 --- a/tests/tools/apps/python/msgr-send.py +++ b/tests/tools/apps/python/msgr-send.py @@ -18,6 +18,7 @@ # specific language governing permissions and limitations # under the License. # +from __future__ import print_function import sys, optparse, time import logging from proton import * --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
