This is an automated email from the ASF dual-hosted git repository. astitcher pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
The following commit(s) were added to refs/heads/main by this push: new 14264f6 PROTON-2405: Change python examples to be python3 only 14264f6 is described below commit 14264f633eaa87f10f3a408335bd9dace11f1d6d Author: Andrew Stitcher <astitc...@apache.org> AuthorDate: Fri Jun 25 17:56:07 2021 -0400 PROTON-2405: Change python examples to be python3 only --- python/examples/README.txt | 18 ++++++- python/examples/abstract_server.py | 4 +- python/examples/broker.py | 4 +- python/examples/client.py | 5 +- python/examples/client_http.py | 3 +- python/examples/colour_send.py | 3 +- python/examples/db_common.py | 11 ++-- python/examples/db_ctrl.py | 3 +- python/examples/db_recv.py | 3 +- python/examples/db_send.py | 11 ++-- python/examples/direct_recv.py | 3 +- python/examples/direct_send.py | 3 +- python/examples/helloworld.py | 3 +- python/examples/helloworld_blocking.py | 4 +- python/examples/helloworld_direct.py | 3 +- python/examples/helloworld_direct_tornado.py | 3 +- python/examples/helloworld_tornado.py | 3 +- python/examples/proton_server.py | 1 - python/examples/proton_tornado.py | 2 +- python/examples/queue_browser.py | 3 +- python/examples/recurring_timer.py | 3 +- python/examples/recurring_timer_tornado.py | 3 +- python/examples/selected_recv.py | 3 +- python/examples/server.py | 3 +- python/examples/server_direct.py | 4 +- python/examples/server_tx.py | 3 +- python/examples/simple_recv.py | 3 +- python/examples/simple_send.py | 3 +- python/examples/sync_client.py | 8 +-- python/examples/test_examples.py | 76 ++++++++++------------------ python/examples/tx_recv.py | 3 +- python/examples/tx_recv_interactive.py | 3 +- python/examples/tx_send.py | 3 +- 33 files changed, 79 insertions(+), 132 deletions(-) diff --git a/python/examples/README.txt b/python/examples/README.txt index 41a6bbd..512ca4c 100644 --- a/python/examples/README.txt +++ b/python/examples/README.txt @@ -2,8 +2,22 @@ Most (though not all) of the current examples require a broker or similar intermediary that supports the AMQP 1.0 protocol, allows anonymous connections and accepts links to and from a node named 'examples'. A very simple broker emulating script - broker.py - is -provided against which the examples can also be run (transactions are -not yet supported in this script). +provided against which some of the examples can also be run. + +Transactions and selectors are not yet supported in this script, so the +examples that require these features (tx_recy.py, tx_send.py, +tx_recv_interactive.py, server_tx.py & selected_recv.py) need to be run +with a broker that supports these features (for instance the qpidd broker) + +There is a test script that will run most of the examples. This script needs +a broker to be running already as a prerequisite. As this script runs the +transactional and selector requiring examples this broker must support these +features. + +For example: + qpidd --queue-patterns '.*' & + PATH=.:$PATH python -m unittest -v +run from within the examples directory Note: For builds that include SASL support via the cyrus sasl library, those examples that accept incoming connections may require some SASL diff --git a/python/examples/abstract_server.py b/python/examples/abstract_server.py index 6a7e312..e0e3eb7 100755 --- a/python/examples/abstract_server.py +++ b/python/examples/abstract_server.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,8 +18,6 @@ # under the License. # -from __future__ import print_function - from proton_server import Server diff --git a/python/examples/broker.py b/python/examples/broker.py index b47c636..0f2e889 100755 --- a/python/examples/broker.py +++ b/python/examples/broker.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -22,8 +22,6 @@ import collections import optparse import uuid -import unittest - from proton import Endpoint from proton.handlers import MessagingHandler from proton.reactor import Container diff --git a/python/examples/client.py b/python/examples/client.py index b149040..19f7edc 100755 --- a/python/examples/client.py +++ b/python/examples/client.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,11 +18,10 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Message from proton.handlers import MessagingHandler -from proton.reactor import Container, DynamicNodeProperties +from proton.reactor import Container class Client(MessagingHandler): diff --git a/python/examples/client_http.py b/python/examples/client_http.py index add9420..3f76aea 100755 --- a/python/examples/client_http.py +++ b/python/examples/client_http.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import tornado.ioloop import tornado.web from tornado.gen import coroutine diff --git a/python/examples/colour_send.py b/python/examples/colour_send.py index 170f227..e04d7e1 100755 --- a/python/examples/colour_send.py +++ b/python/examples/colour_send.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Message from proton.handlers import MessagingHandler diff --git a/python/examples/db_common.py b/python/examples/db_common.py index 7d5c9b7..bd598de 100755 --- a/python/examples/db_common.py +++ b/python/examples/db_common.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,12 +18,9 @@ # under the License. # -try: - import Queue -except ImportError: - import queue as Queue import sqlite3 +import queue import threading @@ -31,7 +28,7 @@ class Db(object): def __init__(self, db, injector): self.db = db self.injector = injector - self.tasks = Queue.Queue() + self.tasks = queue.Queue() self.position = None self.pending_events = [] self.running = True @@ -111,7 +108,7 @@ class Db(object): while True: f(conn) f = self.tasks.get(False) - except Queue.Empty: + except queue.Empty: pass conn.commit() for event in self.pending_events: diff --git a/python/examples/db_ctrl.py b/python/examples/db_ctrl.py index a263f96..8b5d4c3 100755 --- a/python/examples/db_ctrl.py +++ b/python/examples/db_ctrl.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import sqlite3 import sys diff --git a/python/examples/db_recv.py b/python/examples/db_recv.py index 8e293ce..7c95a2f 100755 --- a/python/examples/db_recv.py +++ b/python/examples/db_recv.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import optparse from proton.handlers import MessagingHandler from proton.reactor import ApplicationEvent, Container, EventInjector diff --git a/python/examples/db_send.py b/python/examples/db_send.py index c18f17f..577aa92 100755 --- a/python/examples/db_send.py +++ b/python/examples/db_send.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,13 +18,8 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse -import time -try: - import Queue -except ImportError: - import queue as Queue +import queue from proton import Message @@ -41,7 +36,7 @@ class Send(MessagingHandler): self.sent = 0 self.confirmed = 0 self.load_count = 0 - self.records = Queue.Queue(maxsize=50) + self.records = queue.Queue(maxsize=50) self.target = count self.db = Db("src_db", EventInjector()) diff --git a/python/examples/direct_recv.py b/python/examples/direct_recv.py index 50551fc..d85ef91 100755 --- a/python/examples/direct_recv.py +++ b/python/examples/direct_recv.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import optparse from proton.handlers import MessagingHandler from proton.reactor import Container diff --git a/python/examples/direct_send.py b/python/examples/direct_send.py index 762d0cb..2e08904 100755 --- a/python/examples/direct_send.py +++ b/python/examples/direct_send.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Message from proton.handlers import MessagingHandler diff --git a/python/examples/helloworld.py b/python/examples/helloworld.py index 4e2adc9..fef5092 100755 --- a/python/examples/helloworld.py +++ b/python/examples/helloworld.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals from proton import Message from proton.handlers import MessagingHandler from proton.reactor import Container diff --git a/python/examples/helloworld_blocking.py b/python/examples/helloworld_blocking.py index fb260d5..a5e5fb0 100755 --- a/python/examples/helloworld_blocking.py +++ b/python/examples/helloworld_blocking.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,10 +18,8 @@ # under the License. # -from __future__ import print_function from proton import Message from proton.utils import BlockingConnection -from proton.handlers import IncomingMessageHandler conn = BlockingConnection("localhost:5672") receiver = conn.create_receiver("examples") diff --git a/python/examples/helloworld_direct.py b/python/examples/helloworld_direct.py index 4218b53..65c0d72 100755 --- a/python/examples/helloworld_direct.py +++ b/python/examples/helloworld_direct.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals from proton import Message from proton.handlers import MessagingHandler from proton.reactor import Container diff --git a/python/examples/helloworld_direct_tornado.py b/python/examples/helloworld_direct_tornado.py index 2b3bbd2..e1d2ae5 100755 --- a/python/examples/helloworld_direct_tornado.py +++ b/python/examples/helloworld_direct_tornado.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton import Message from proton.handlers import MessagingHandler from proton_tornado import Container diff --git a/python/examples/helloworld_tornado.py b/python/examples/helloworld_tornado.py index 5604b21..68f9e60 100755 --- a/python/examples/helloworld_tornado.py +++ b/python/examples/helloworld_tornado.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton import Message from proton.handlers import MessagingHandler from proton_tornado import Container diff --git a/python/examples/proton_server.py b/python/examples/proton_server.py index 6dfd807..b588ea1 100755 --- a/python/examples/proton_server.py +++ b/python/examples/proton_server.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file diff --git a/python/examples/proton_tornado.py b/python/examples/proton_tornado.py index 55e8db8..a359b4c 100755 --- a/python/examples/proton_tornado.py +++ b/python/examples/proton_tornado.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file diff --git a/python/examples/queue_browser.py b/python/examples/queue_browser.py index 7f659f0..08b81a2 100755 --- a/python/examples/queue_browser.py +++ b/python/examples/queue_browser.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton.reactor import Container, Copy from proton.handlers import MessagingHandler diff --git a/python/examples/recurring_timer.py b/python/examples/recurring_timer.py index 58f3ffd..55fbb26 100755 --- a/python/examples/recurring_timer.py +++ b/python/examples/recurring_timer.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton.reactor import Container, Handler diff --git a/python/examples/recurring_timer_tornado.py b/python/examples/recurring_timer_tornado.py index ff4c078..1d9bff4 100755 --- a/python/examples/recurring_timer_tornado.py +++ b/python/examples/recurring_timer_tornado.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton.reactor import Handler from proton_tornado import Container diff --git a/python/examples/selected_recv.py b/python/examples/selected_recv.py index 43b576b..5d8b374 100755 --- a/python/examples/selected_recv.py +++ b/python/examples/selected_recv.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Url from proton.reactor import Container, Selector diff --git a/python/examples/server.py b/python/examples/server.py index eb0d66e..aad5504 100755 --- a/python/examples/server.py +++ b/python/examples/server.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import optparse from proton import Message, Url from proton.handlers import MessagingHandler diff --git a/python/examples/server_direct.py b/python/examples/server_direct.py index 8cc7d9c..16496fa 100755 --- a/python/examples/server_direct.py +++ b/python/examples/server_direct.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,8 +18,6 @@ # under the License. # -from __future__ import print_function - import uuid from proton import Message from proton.handlers import MessagingHandler diff --git a/python/examples/server_tx.py b/python/examples/server_tx.py index 731f9eb..7a2b9f2 100755 --- a/python/examples/server_tx.py +++ b/python/examples/server_tx.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function from proton import Message from proton.reactor import Container from proton.handlers import MessagingHandler, TransactionHandler diff --git a/python/examples/simple_recv.py b/python/examples/simple_recv.py index 52724a3..f55dfa2 100755 --- a/python/examples/simple_recv.py +++ b/python/examples/simple_recv.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import optparse from proton.handlers import MessagingHandler from proton.reactor import Container diff --git a/python/examples/simple_send.py b/python/examples/simple_send.py index 1d36517..f078c12 100755 --- a/python/examples/simple_send.py +++ b/python/examples/simple_send.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Message from proton.handlers import MessagingHandler diff --git a/python/examples/sync_client.py b/python/examples/sync_client.py index 9a395ae..3b6d8d3 100755 --- a/python/examples/sync_client.py +++ b/python/examples/sync_client.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -23,13 +23,9 @@ Demonstrates the client side of the synchronous request-response pattern (also known as RPC or Remote Procedure Call) using proton. """ -from __future__ import print_function, unicode_literals - import optparse -from proton import Message, Url, ConnectionException, Timeout +from proton import Message, Url from proton.utils import SyncRequestResponse, BlockingConnection -from proton.handlers import IncomingMessageHandler -import sys parser = optparse.OptionParser(usage="usage: %prog [options]", description="Send requests to the supplied address and print responses.") diff --git a/python/examples/test_examples.py b/python/examples/test_examples.py index c40bf1a..51974cc 100644 --- a/python/examples/test_examples.py +++ b/python/examples/test_examples.py @@ -29,37 +29,21 @@ class Popen(subprocess.Popen): def __init__(self, args, **kwargs): super(Popen, self).\ __init__(args, + shell=False, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, universal_newlines=True, **kwargs) - # For Python 2 compatibility add context manager support to Popen if it's not there - if not hasattr(subprocess.Popen, '__enter__'): - def __enter__(self): - return self - - # For Python 2 compatibility add context manager support to Popen if it's not there - if not hasattr(subprocess.Popen, '__exit__'): - def __exit__(self, exc_type, exc_val, exc_tb): - try: - if self.stdin: - self.stdin.close() - if self.stdout: - self.stdout.close() - if self.stderr: - self.stderr.close() - finally: - self.wait() - - -def remove_unicode_prefix(line): - return re.sub(r"u(['\"])", r"\1", line) +# Like subprocess.run with our defaults but returning the Popen object +def run(args, **kwargs): + p = Popen(args, **kwargs) + p.wait() + return p class ExamplesTest(unittest.TestCase): def test_helloworld(self, example="helloworld.py"): - with Popen([example]) as p: - p.wait() + with run([example]) as p: output = [l.strip() for l in p.stdout] self.assertEqual(output, ['Hello World!']) @@ -77,19 +61,17 @@ class ExamplesTest(unittest.TestCase): def test_simple_send_recv(self, recv='simple_recv.py', send='simple_send.py'): with Popen([recv]) as r: - with Popen([send]): + with run([send]): pass - actual = [remove_unicode_prefix(l.strip()) for l in r.stdout] - expected_py2 = ["{'sequence': int32(%i)}" % (i + 1,) for i in range(100)] - expected_py3 = ["{'sequence': %i}" % (i + 1,) for i in range(100)] - self.assertIn(actual, [expected_py2, expected_py3]) + actual = [l.strip() for l in r.stdout] + expected = ["{'sequence': %i}" % (i + 1,) for i in range(100)] + self.assertEqual(actual, expected) def test_client_server(self, client=['client.py'], server=['server.py'], sleep=0): with Popen(server) as s: if sleep: time.sleep(sleep) - with Popen(client) as c: - c.wait() + with run(client) as c: actual = [l.strip() for l in c.stdout] inputs = ["Twas brillig, and the slithy toves", "Did gire and gymble in the wabe.", @@ -128,7 +110,7 @@ class ExamplesTest(unittest.TestCase): # run send and recv with Popen(['db_recv.py', '-m', '100']) as r: - with Popen(['db_send.py', '-m', '100']): + with run(['db_send.py', '-m', '100']): pass r.wait() # verify output of receive @@ -137,10 +119,9 @@ class ExamplesTest(unittest.TestCase): self.assertEqual(actual, expected) # verify state of databases - with Popen(['db_ctrl.py', 'list', './dst_db']) as v: - v.wait() + with run(['db_ctrl.py', 'list', './dst_db']) as v: expected = ["(%i, 'Message-%i')" % (i + 1, i + 1) for i in range(100)] - actual = [remove_unicode_prefix(l.strip()) for l in v.stdout] + actual = [l.strip() for l in v.stdout] self.assertEqual(actual, expected) def test_tx_send_tx_recv(self): @@ -150,36 +131,31 @@ class ExamplesTest(unittest.TestCase): self.maxDiff = None with Popen(['direct_recv.py', '-a', 'localhost:8888']) as r: time.sleep(0.5) - with Popen(['simple_send.py', '-a', 'localhost:8888']): + with run(['simple_send.py', '-a', 'localhost:8888']): pass r.wait() - actual = [remove_unicode_prefix(l.strip()) for l in r.stdout] - expected_py2 = ["{'sequence': int32(%i)}" % (i + 1,) for i in range(100)] - expected_py3 = ["{'sequence': %i}" % (i + 1,) for i in range(100)] - self.assertIn(actual, [expected_py2, expected_py3]) + actual = [l.strip() for l in r.stdout] + expected = ["{'sequence': %i}" % (i + 1,) for i in range(100)] + self.assertEqual(actual, expected) def test_direct_send_simple_recv(self): with Popen(['direct_send.py', '-a', 'localhost:8888']): time.sleep(0.5) - with Popen(['simple_recv.py', '-a', 'localhost:8888']) as r: - r.wait() - actual = [remove_unicode_prefix(l.strip()) for l in r.stdout] - expected_py2 = ["{'sequence': int32(%i)}" % (i + 1,) for i in range(100)] - expected_py3 = ["{'sequence': %i}" % (i + 1,) for i in range(100)] - self.assertIn(actual, [expected_py2, expected_py3]) + with run(['simple_recv.py', '-a', 'localhost:8888']) as r: + actual = [l.strip() for l in r.stdout] + expected = ["{'sequence': %i}" % (i + 1,) for i in range(100)] + self.assertEqual(actual, expected) def test_selected_recv(self): - with Popen(['colour_send.py']): + with run(['colour_send.py']): pass - with Popen(['selected_recv.py', '-m', '50']) as r: - r.wait() + with run(['selected_recv.py', '-m', '50']) as r: actual = [l.strip() for l in r.stdout] expected = ["green %i" % (i + 1) for i in range(100) if i % 2 == 0] self.assertEqual(actual, expected) - with Popen(['simple_recv.py', '-m', '50']) as r: - r.wait() + with run(['simple_recv.py', '-m', '50']) as r: actual = [l.strip() for l in r.stdout] expected = ["red %i" % (i + 1) for i in range(100) if i % 2 == 1] self.assertEqual(actual, expected) diff --git a/python/examples/tx_recv.py b/python/examples/tx_recv.py index bea05ab..2e4a736 100755 --- a/python/examples/tx_recv.py +++ b/python/examples/tx_recv.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import optparse from proton import Url from proton.reactor import Container diff --git a/python/examples/tx_recv_interactive.py b/python/examples/tx_recv_interactive.py index 63bc76b..e7626be 100755 --- a/python/examples/tx_recv_interactive.py +++ b/python/examples/tx_recv_interactive.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function import sys import threading from proton.reactor import ApplicationEvent, Container, EventInjector diff --git a/python/examples/tx_send.py b/python/examples/tx_send.py index 3d53be5..8ba6638 100755 --- a/python/examples/tx_send.py +++ b/python/examples/tx_send.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -18,7 +18,6 @@ # under the License. # -from __future__ import print_function, unicode_literals import optparse from proton import Message, Url from proton.reactor import Container --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org