From e06aa805cfe24b8edf619a6a535883f94589ac35 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Tue, 22 Apr 2008 16:11:34 +0000 Subject: QPID-947: update cpp and python management to 0-10 final git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@650565 13f79535-47bb-0310-9956-ffa450edef68 --- python/tests/__init__.py | 2 +- python/tests/connection.py | 136 ++++++++++++++++++++++++++++++++++++++++++ python/tests/connection010.py | 136 ------------------------------------------ 3 files changed, 137 insertions(+), 137 deletions(-) create mode 100644 python/tests/connection.py delete mode 100644 python/tests/connection010.py (limited to 'python/tests') diff --git a/python/tests/__init__.py b/python/tests/__init__.py index 521e2f15c9..8ad514fc2f 100644 --- a/python/tests/__init__.py +++ b/python/tests/__init__.py @@ -25,6 +25,6 @@ from spec import * from framer import * from assembler import * from datatypes import * -from connection010 import * +from connection import * from spec010 import * from codec010 import * diff --git a/python/tests/connection.py b/python/tests/connection.py new file mode 100644 index 0000000000..6925480ed3 --- /dev/null +++ b/python/tests/connection.py @@ -0,0 +1,136 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +from threading import * +from unittest import TestCase +from qpid.util import connect, listen +from qpid.connection import * +from qpid.datatypes import Message +from qpid.testlib import testrunner +from qpid.delegates import Server +from qpid.queue import Queue +from qpid.spec010 import load +from qpid.session import Delegate + +PORT = 1234 + +class TestServer: + + def __init__(self, queue): + self.queue = queue + + def connection(self, connection): + return Server(connection, delegate=self.session) + + def session(self, session): + session.auto_sync = False + return TestSession(session, self.queue) + +class TestSession(Delegate): + + def __init__(self, session, queue): + self.session = session + self.queue = queue + + def queue_query(self, qq): + return qq._type.result.type.new((qq.queue,), {}) + + def message_transfer(self, cmd, header, body): + self.queue.put((cmd, header, body)) + +class ConnectionTest(TestCase): + + def setUp(self): + self.spec = load(testrunner.get_spec_file("amqp.0-10.xml")) + self.queue = Queue() + self.running = True + started = Event() + + def run(): + ts = TestServer(self.queue) + for s in listen("0.0.0.0", PORT, lambda: self.running, lambda: started.set()): + conn = Connection(s, self.spec, ts.connection) + try: + conn.start(5) + except Closed: + pass + + self.server = Thread(target=run) + self.server.setDaemon(True) + self.server.start() + + started.wait(3) + + def tearDown(self): + self.running = False + connect("0.0.0.0", PORT).close() + self.server.join(3) + + def test(self): + c = Connection(connect("0.0.0.0", PORT), self.spec) + c.start(10) + + ssn1 = c.session("test1", timeout=10) + ssn2 = c.session("test2", timeout=10) + + assert ssn1 == c.sessions["test1"] + assert ssn2 == c.sessions["test2"] + assert ssn1.channel != None + assert ssn2.channel != None + assert ssn1 in c.attached.values() + assert ssn2 in c.attached.values() + + ssn1.close(5) + + assert ssn1.channel == None + assert ssn1 not in c.attached.values() + assert ssn2 in c.sessions.values() + + ssn2.close(5) + + assert ssn2.channel == None + assert ssn2 not in c.attached.values() + assert ssn2 not in c.sessions.values() + + ssn = c.session("session", timeout=10) + + assert ssn.channel != None + assert ssn in c.sessions.values() + + destinations = ("one", "two", "three") + + for d in destinations: + ssn.message_transfer(d) + + for d in destinations: + cmd, header, body = self.queue.get(10) + assert cmd.destination == d + assert header == None + assert body == None + + msg = Message("this is a test") + ssn.message_transfer("four", message=msg) + cmd, header, body = self.queue.get(10) + assert cmd.destination == "four" + assert header == None + assert body == msg.body + + qq = ssn.queue_query("asdf") + assert qq.queue == "asdf" + c.close(5) diff --git a/python/tests/connection010.py b/python/tests/connection010.py deleted file mode 100644 index a953e034a2..0000000000 --- a/python/tests/connection010.py +++ /dev/null @@ -1,136 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -from threading import * -from unittest import TestCase -from qpid.util import connect, listen -from qpid.connection010 import * -from qpid.datatypes import Message -from qpid.testlib import testrunner -from qpid.delegates import Server -from qpid.queue import Queue -from qpid.spec010 import load -from qpid.session import Delegate - -PORT = 1234 - -class TestServer: - - def __init__(self, queue): - self.queue = queue - - def connection(self, connection): - return Server(connection, delegate=self.session) - - def session(self, session): - session.auto_sync = False - return TestSession(session, self.queue) - -class TestSession(Delegate): - - def __init__(self, session, queue): - self.session = session - self.queue = queue - - def queue_query(self, qq): - return qq._type.result.type.new((qq.queue,), {}) - - def message_transfer(self, cmd, header, body): - self.queue.put((cmd, header, body)) - -class ConnectionTest(TestCase): - - def setUp(self): - self.spec = load(testrunner.get_spec_file("amqp.0-10.xml")) - self.queue = Queue() - self.running = True - started = Event() - - def run(): - ts = TestServer(self.queue) - for s in listen("0.0.0.0", PORT, lambda: self.running, lambda: started.set()): - conn = Connection(s, self.spec, ts.connection) - try: - conn.start(5) - except Closed: - pass - - self.server = Thread(target=run) - self.server.setDaemon(True) - self.server.start() - - started.wait(3) - - def tearDown(self): - self.running = False - connect("0.0.0.0", PORT).close() - self.server.join(3) - - def test(self): - c = Connection(connect("0.0.0.0", PORT), self.spec) - c.start(10) - - ssn1 = c.session("test1", timeout=10) - ssn2 = c.session("test2", timeout=10) - - assert ssn1 == c.sessions["test1"] - assert ssn2 == c.sessions["test2"] - assert ssn1.channel != None - assert ssn2.channel != None - assert ssn1 in c.attached.values() - assert ssn2 in c.attached.values() - - ssn1.close(5) - - assert ssn1.channel == None - assert ssn1 not in c.attached.values() - assert ssn2 in c.sessions.values() - - ssn2.close(5) - - assert ssn2.channel == None - assert ssn2 not in c.attached.values() - assert ssn2 not in c.sessions.values() - - ssn = c.session("session", timeout=10) - - assert ssn.channel != None - assert ssn in c.sessions.values() - - destinations = ("one", "two", "three") - - for d in destinations: - ssn.message_transfer(d) - - for d in destinations: - cmd, header, body = self.queue.get(10) - assert cmd.destination == d - assert header == None - assert body == None - - msg = Message("this is a test") - ssn.message_transfer("four", message=msg) - cmd, header, body = self.queue.get(10) - assert cmd.destination == "four" - assert header == None - assert body == msg.body - - qq = ssn.queue_query("asdf") - assert qq.queue == "asdf" - c.close(5) -- cgit v1.2.1