On 06/18/2015 06:41 PM, [email protected] wrote:
Author: kwall
Date: Thu Jun 18 17:41:08 2015
New Revision: 1686284

URL: http://svn.apache.org/r1686284
Log:
QPID-6599: [Python Tests AMQP 0-10] Supporting test for Java Broker Defect

Verify that it is possible to declare a reserved exchange with the same type, 
conversely
verify that attempting to redeclare an reserved exchange with a different type 
causes error.

Modified:
     qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py

Modified: qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py?rev=1686284&r1=1686283&r2=1686284&view=diff
==============================================================================
--- qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py (original)
+++ qpid/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py Thu Jun 18 
17:41:08 2015
@@ -96,8 +96,9 @@ class TestHelper(TestBase010):
                           auto_delete=False,
                           arguments={}):
          session = session or self.session
-        reply = session.exchange_declare(exchange=exchange, type=type, 
passive=passive,durable=durable, auto_delete=auto_delete, arguments=arguments)
-        self.exchanges.append((session,exchange))
+        reply = session.exchange_declare(exchange=exchange, type=type, 
passive=passive, durable=durable, auto_delete=auto_delete, arguments=arguments)
+        if exchange and not exchange.startswith("amq."):
+          self.exchanges.append((session,exchange))
          return reply

      def uniqueString(self):
@@ -482,6 +483,17 @@ class MiscellaneousErrorsTests(TestHelpe
              self.fail("Expected 530 for redeclaration of exchange with different 
type.")
          except SessionException, e:
              self.assertEquals(530, e.args[0].error_code)
+
+    def testReservedExchangeRedeclaredSameType(self):
+        self.exchange_declare(exchange="amq.direct", type="direct", 
passive=False)

I think this test is wrong. The spec states:

    Exchange names starting with "amq." are reserved for pre-declared
    and standardized exchanges. The client MUST NOT attempt to create
    an exchange starting with "amq.".

Which in my view means that a non-passive declare of any exchange with the 'amq.' prefix is illegal, since that is a request to create if it does not exist.

+        self.exchange_declare(exchange="amq.direct", type="direct", 
passive=True)

This is ok, the passive declare is merely asserting that the exchange is there.

+
+    def testReservedExchangeRedeclaredDifferentType(self):
+        try:
+            self.exchange_declare(exchange="amq.direct", type="topic")
+            self.fail("Expected 530 for redeclaration of exchange with different 
type.")
+        except SessionException, e:
+            self.assertEquals(530, e.args[0].error_code)

      def testDefaultAccessBind(self):
          try:



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to