Fixes #155: avoid unnecessary Tester() instance in QdManager
diff --git a/tests/system_test.py b/tests/system_test.py
index f3968b5..bb01b09 100755
--- a/tests/system_test.py
+++ b/tests/system_test.py
@@ -1177,38 +1177,37 @@
A means to invoke qdmanage during a testcase
"""
- def __init__(self, tester=None, address=None, timeout=TIMEOUT,
- router_id=None,
- edge_router_id=None):
+ def __init__(self, address: Optional[str] = None,
+ timeout: Optional[float] = TIMEOUT,
+ router_id: Optional[str] = None,
+ edge_router_id: Optional[str] = None) -> None:
# 'tester' - can be 'self' when called in a test,
# or an instance any class derived from Process (like Qdrouterd)
- self._tester = tester or Tester(None)
self._timeout = timeout
self._address = address
self.router_id = router_id
self.edge_router_id = edge_router_id
- self.router = []
+ self.router: List[str] = []
if self.router_id:
self.router = self.router + ['--router', self.router_id]
elif self.edge_router_id:
self.router = self.router + ['--edge-router', self.edge_router_id]
- def __call__(self, cmd, address=None, input=None, expect=Process.EXIT_OK,
- timeout=None):
- assert address or self._address, "address missing"
- p = self._tester.popen(
- ['qdmanage'] + cmd.split(' ')
- + self.router + ['--bus', address or self._address,
- '--indent=-1',
- '--timeout', str(timeout or self._timeout)],
- stdin=PIPE, stdout=PIPE, stderr=STDOUT, expect=expect,
- universal_newlines=True)
- out = p.communicate(input)[0]
- try:
- p.teardown()
- except Exception as e:
- raise Exception("%s\n%s" % (e, out))
- return out
+ def __call__(self, cmd: str,
+ address: Optional[str] = None,
+ input: Optional[str] = None,
+ timeout: Optional[float] = None) -> str:
+ addr = address or self._address
+ assert addr, "address missing"
+ with subprocess.Popen(['qdmanage'] + cmd.split(' ') + self.router
+ + ['--bus', addr, '--indent=-1', '--timeout',
+ str(timeout or self._timeout)], stdin=PIPE,
+ stdout=PIPE, stderr=STDOUT,
+ universal_newlines=True) as p:
+ rc = p.communicate(input)
+ if p.returncode != 0:
+ raise Exception("%s %s" % rc)
+ return rc[0]
def create(self, long_type, kwargs):
cmd = "CREATE --type=%s" % long_type
diff --git a/tests/system_tests_autolinks.py b/tests/system_tests_autolinks.py
index 33679e4..e3a2e8a 100644
--- a/tests/system_tests_autolinks.py
+++ b/tests/system_tests_autolinks.py
@@ -124,7 +124,7 @@
al_long_type = 'org.apache.qpid.dispatch.router.config.autoLink'
addr_long_type = 'org.apache.qpid.dispatch.router.config.address'
lr_long_type = 'org.apache.qpid.dispatch.router.config.linkRoute'
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
mgmt.create(al_long_type, args)
@@ -137,7 +137,7 @@
args = {"name": "linkRoute", "prefix": "linkRoute",
"connection": "broker", "dir": "in"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
mgmt.create(lr_long_type, args)
@@ -148,7 +148,7 @@
args = {"name": "address", "prefix": "address.1",
"waypoint": "yes"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
mgmt.create(addr_long_type, args)
@@ -166,41 +166,41 @@
# sure that is ok
args = {"name": "autoLink", "prefix": "linkRoute",
"connection": "broker", "dir": "in"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(lr_long_type, args)
# insert a linkRoute with the name of an existing addr config and make
# sure that is ok
args = {"name": "address", "prefix": "linkRoute",
"connection": "broker", "dir": "in"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(lr_long_type, args)
# insert an autoLink with the name of an existing linkRoute and make
# sure that is ok
args = {"name": "linkRoute", "address": "autoLink1", "connection": "broker", "dir": "in"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(al_long_type, args)
# insert an autoLink with the name of an existing address and make
# sure that is ok
args = {"name": "address", "address": "autoLink1", "connection": "broker", "dir": "in"}
al_long_type = 'org.apache.qpid.dispatch.router.config.autoLink'
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(al_long_type, args)
# insert an address with the name of an existing autoLink and make
# sure that is ok
args = {"name": "autoLink", "prefix": "address.2",
"waypoint": "yes"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(addr_long_type, args)
# insert an autoLink with the name of an existing linkRoute and make
# sure that is ok
args = {"name": "linkRoute", "prefix": "address.3",
"waypoint": "yes"}
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
mgmt.create(addr_long_type, args)
diff --git a/tests/system_tests_core_client.py b/tests/system_tests_core_client.py
index 8e0bf36..b2edf26 100644
--- a/tests/system_tests_core_client.py
+++ b/tests/system_tests_core_client.py
@@ -78,7 +78,7 @@
self.assertTrue(ts.accepted)
def test_call_timeout(self):
- qm = QdManager(self, self.router.addresses[0])
+ qm = QdManager(self.router.addresses[0])
ts = TestCallTimeout(self.router.addresses[0], qm)
ts.run()
self.assertEqual("TIMED OUT!", ts.error)
diff --git a/tests/system_tests_edge_router.py b/tests/system_tests_edge_router.py
index 97f1f5e..213dafc 100644
--- a/tests/system_tests_edge_router.py
+++ b/tests/system_tests_edge_router.py
@@ -1394,7 +1394,7 @@
def test_71_qdmanage_edge_router_option(self):
# Makes a connection to an interior router INT.A and runs qdstat
# asking for all connections of an edge router EA1
- mgmt = QdManager(self, address=self.routers[0].addresses[0],
+ mgmt = QdManager(address=self.routers[0].addresses[0],
edge_router_id='EA1')
conn_found = False
outs = mgmt.query('org.apache.qpid.dispatch.connection')
@@ -1406,7 +1406,7 @@
# Makes a connection to an edge router and runs qdstat
# asking for all connections of an edge router EA1
- mgmt = QdManager(self, address=self.routers[2].addresses[0],
+ mgmt = QdManager(address=self.routers[2].addresses[0],
edge_router_id='EA1')
conn_found = False
outs = mgmt.query('org.apache.qpid.dispatch.connection')
@@ -1421,7 +1421,7 @@
# asking for all connections of an edge router EA1. The interior
# router INT.B is connected to edge router EA1 indirectly via
# interior router INT.A
- mgmt = QdManager(self, address=self.routers[1].addresses[0],
+ mgmt = QdManager(address=self.routers[1].addresses[0],
edge_router_id='EA1')
conn_found = False
outs = mgmt.query('org.apache.qpid.dispatch.connection')
@@ -1483,7 +1483,7 @@
# EA1 and EA2 and is also connected to another interior router INT.B
# We will connect to edge router EA1 (which has an edge
# uplink to INT.A) and query for connections on INT.A
- mgmt = QdManager(self, address=self.routers[2].addresses[0],
+ mgmt = QdManager(address=self.routers[2].addresses[0],
router_id='INT.A')
outs = mgmt.query('org.apache.qpid.dispatch.connection')
ea1_conn_found = False
@@ -1503,7 +1503,7 @@
# EA1 via INT.A
# We will connect to edge router EA1 (which has an edge
# uplink to INT.A) and query for connections on INT.B
- mgmt = QdManager(self, address=self.routers[2].addresses[0],
+ mgmt = QdManager(address=self.routers[2].addresses[0],
router_id='INT.B')
outs = mgmt.query('org.apache.qpid.dispatch.connection')
eb1_conn_found = False
@@ -1741,7 +1741,7 @@
"""
query existing links and verify they are set up as expected
"""
- mgmt = QdManager(self, address=router)
+ mgmt = QdManager(address=router)
# fetch all the connections
cl = mgmt.query('org.apache.qpid.dispatch.connection')
# map them by their identity
diff --git a/tests/system_tests_http.py b/tests/system_tests_http.py
index 4d03ee2..130d948 100644
--- a/tests/system_tests_http.py
+++ b/tests/system_tests_http.py
@@ -139,7 +139,7 @@
# Delete the listener on port http_delete_listen_port_1
long_type = 'org.apache.qpid.dispatch.listener'
- mgmt = QdManager(self, address=address())
+ mgmt = QdManager(address=address())
if self.skip_delete_http_listener_test:
# You are not allowed to delete a http:yes listener
@@ -339,7 +339,7 @@
if not self.skip_delete_http_listener_test:
# Delete the listener with name 'delete-me'
long_type = 'org.apache.qpid.dispatch.listener'
- mgmt = QdManager(self, address=address())
+ mgmt = QdManager(address=address())
mgmt.delete(long_type, name=name)
# Make sure that the listener got deleted.
diff --git a/tests/system_tests_link_routes.py b/tests/system_tests_link_routes.py
index eb8c884..59f68e2 100644
--- a/tests/system_tests_link_routes.py
+++ b/tests/system_tests_link_routes.py
@@ -2233,8 +2233,8 @@
fs.delete_config()
# eventually the addresses will be un-published
- mgmt_A = QdManager(self, address=self.QDR_A.addresses[0])
- mgmt_B = QdManager(self, address=self.QDR_B.addresses[0])
+ mgmt_A = QdManager(address=self.QDR_A.addresses[0])
+ mgmt_B = QdManager(address=self.QDR_B.addresses[0])
deadline = time() + TIMEOUT
while (self._get_address(mgmt_A, "flea.*")
or self._get_address(mgmt_B, "flea.*")):
@@ -2246,8 +2246,8 @@
# simple forwarding tests with auto delete
def test_send_receive(self):
COUNT = 5
- mgmt_A = QdManager(self, address=self.QDR_A.addresses[0])
- mgmt_B = QdManager(self, address=self.QDR_B.addresses[0])
+ mgmt_A = QdManager(address=self.QDR_A.addresses[0])
+ mgmt_B = QdManager(address=self.QDR_B.addresses[0])
# connect broker to A route-container
fs = ConnLinkRouteService(self.QDR_A.addresses[1], container_id="FakeService",
@@ -2302,8 +2302,8 @@
# are removed so the link route addresses must be gone
fs.join()
- mgmt_A = QdManager(self, address=self.QDR_A.addresses[0])
- mgmt_B = QdManager(self, address=self.QDR_B.addresses[0])
+ mgmt_A = QdManager(address=self.QDR_A.addresses[0])
+ mgmt_B = QdManager(address=self.QDR_B.addresses[0])
deadline = time() + TIMEOUT
while (self._get_address(mgmt_A, "flea.*")
or self._get_address(mgmt_B, "flea.*")):
@@ -2580,7 +2580,7 @@
# Now that the qdmanage has run, query the link routes and make sure that their "operStatus" is "active" before
# running any of the tests.
long_type = 'org.apache.qpid.dispatch.router.config.linkRoute'
- qd_manager = QdManager(self, address=self.routers[1].addresses[0])
+ qd_manager = QdManager(address=self.routers[1].addresses[0])
for i in range(5):
all_link_routes_activated = True
diff --git a/tests/system_tests_log_level_update.py b/tests/system_tests_log_level_update.py
index e291d01..42a4690 100644
--- a/tests/system_tests_log_level_update.py
+++ b/tests/system_tests_log_level_update.py
@@ -156,7 +156,7 @@
def test_turn_on_protocol_trace(self):
hello_world_0 = "Hello World_0!"
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
blocking_connection = BlockingConnection(self.address)
TEST_ADDR = "moduletest0"
@@ -267,7 +267,7 @@
return num_transfers
def test_inter_router_protocol_trace(self):
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
# The router already has trace logging turned on for all connections.
# Get the connection id of the inter-router connection
@@ -332,7 +332,7 @@
cls.address = cls.router.addresses[0]
def test_enable_protocol_trace_on_non_existent_connection(self):
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
bad_request = False
@@ -346,7 +346,7 @@
self.assertTrue(bad_request)
def test_single_connection_protocol_trace(self):
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
# Turn off trace logging on all connections.
qd_manager.update("org.apache.qpid.dispatch.log", {"enable": "info+"},
@@ -452,7 +452,7 @@
hello_world_2 = "Hello World_2!"
hello_world_3 = "Hello World_3!"
hello_world_4 = "Hello World_4!"
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
blocking_connection = BlockingConnection(self.address)
TEST_ADDR = "apachetest1"
@@ -532,7 +532,7 @@
# Step 1. Turn off trace logging for module DEFAULT and enable trace logging
# for the PROTOCOL module and make sure it works.
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
# Set log level to info+ on the DEFAULT module
qd_manager.update("org.apache.qpid.dispatch.log", {"enable": "info+"}, name="log/DEFAULT")
# Set log level to trace+ on the PROTOCOL module
@@ -615,7 +615,7 @@
blocking_sender.send(msg)
received_message = blocking_receiver.receive()
self.assertEqual(TEST_MSG_BODY, received_message.body)
- qd_manager = QdManager(self, self.address)
+ qd_manager = QdManager(self.address)
logs = qd_manager.get_log()
router_core_found = False
diff --git a/tests/system_tests_one_router.py b/tests/system_tests_one_router.py
index 299e1ed..25ec109 100644
--- a/tests/system_tests_one_router.py
+++ b/tests/system_tests_one_router.py
@@ -58,7 +58,7 @@
but never an inter-router connector. Inter router connectors
are allowed only with interior routers.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.connector",
@@ -77,7 +77,7 @@
Since this is a standalone router, other routers (interior or edge routers)
cannot connect to this router.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.listener",
@@ -97,7 +97,7 @@
Since this is a standalone router, other routers (interior or edge routers)
cannot connect to this router.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.listener",
@@ -130,7 +130,7 @@
but never an inter-router connector. Inter router connectors
are allowed only with interior routers.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.connector",
@@ -149,7 +149,7 @@
an edge router can connect to another edge router and that is not
allowed.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.listener",
@@ -169,7 +169,7 @@
an edge router can connect to another edge router and that is not
allowed.
"""
- mgmt = QdManager(self, address=self.router.addresses[0])
+ mgmt = QdManager(address=self.router.addresses[0])
test_pass = False
try:
out = mgmt.create("org.apache.qpid.dispatch.listener",
@@ -3589,7 +3589,7 @@
# condition=:"qd:no-route-to-dest", description="No route to the destination node"
COORDINATOR = "$coordinator"
long_type = 'org.apache.qpid.dispatch.router.config.linkRoute'
- qd_manager = QdManager(self, address=self.address)
+ qd_manager = QdManager(address=self.address)
args = {"prefix": COORDINATOR, "connection": "broker", "dir": "in"}
qd_manager.create(long_type, args)
link_route_created = False
diff --git a/tests/system_tests_open_properties.py b/tests/system_tests_open_properties.py
index 3e9979d..e64671d 100644
--- a/tests/system_tests_open_properties.py
+++ b/tests/system_tests_open_properties.py
@@ -265,10 +265,10 @@
op})
cmd = "CREATE --type=org.apache.qpid.dispatch.%s --stdin" % client_class.entity
- output = QdManager(tester=self)(cmd=cmd,
- address=router.addresses[0],
- input=input,
- timeout=TIMEOUT)
+ output = QdManager()(cmd=cmd,
+ address=router.addresses[0],
+ input=input,
+ timeout=TIMEOUT)
rc = json.loads(output)
self.assertIn("openProperties", rc)
self.assertEqual(op, rc["openProperties"])
diff --git a/tests/system_tests_qdmanage.py b/tests/system_tests_qdmanage.py
index f86f502..f51c4dc 100644
--- a/tests/system_tests_qdmanage.py
+++ b/tests/system_tests_qdmanage.py
@@ -597,7 +597,7 @@
def test_worker_threads(self):
long_type = 'org.apache.qpid.dispatch.router'
- qd_manager = QdManager(self, address=self.address())
+ qd_manager = QdManager(address=self.address())
output = qd_manager.query('org.apache.qpid.dispatch.router')
self.assertEqual(output[0]['workerThreads'], 4)
diff --git a/tests/system_tests_sasl_plain.py b/tests/system_tests_sasl_plain.py
index af5edc6..a237879 100644
--- a/tests/system_tests_sasl_plain.py
+++ b/tests/system_tests_sasl_plain.py
@@ -126,7 +126,7 @@
def test_inter_router_sasl_fail(self):
passed = False
long_type = 'org.apache.qpid.dispatch.connection'
- qd_manager = QdManager(self, address=self.routers[1].addresses[0])
+ qd_manager = QdManager(address=self.routers[1].addresses[0])
connections = qd_manager.query(long_type)
for connection in connections:
if connection['role'] == 'inter-router':
@@ -136,7 +136,7 @@
# There was no inter-router connection established.
self.assertFalse(passed)
- qd_manager = QdManager(self, address=self.routers[1].addresses[0])
+ qd_manager = QdManager(address=self.routers[1].addresses[0])
logs = qd_manager.get_log()
sasl_failed = False
@@ -223,7 +223,7 @@
passed = False
long_type = 'org.apache.qpid.dispatch.connection'
- qd_manager = QdManager(self, address=self.routers[1].addresses[0])
+ qd_manager = QdManager(address=self.routers[1].addresses[0])
connections = qd_manager.query(long_type)
for connection in connections: