QPIDIT-136: Fix python2.7 site package path in PYTHON3PATH issue
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 790d7d7..0fffdd0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,6 +133,16 @@
install(CODE "execute_process(COMMAND python setup.py install --prefix ${CMAKE_INSTALL_PREFIX}
WORKING_DIRECTORY ../)")
+# This section is temporary - make links from python3.x site-packages dir to python2.7 files needed by shims
+# when running under Python 3.x.
+install(CODE "MESSAGE(STATUS \"Python install dir: ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON3_DIR_NAME}/site-packages/qpid_interop_test/\")")
+install(CODE "execute_process(COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON3_DIR_NAME}/site-packages/qpid_interop_test/
+ WORKING_DIRECTORY ../)")
+install(CODE "execute_process(COMMAND ln -s ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON2_DIR_NAME}/site-packages/qpid_interop_test/qit_errors.py
+ ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON3_DIR_NAME}/site-packages/qpid_interop_test/qit_errors.py)")
+install(CODE "execute_process(COMMAND ln -s ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON2_DIR_NAME}/site-packages/qpid_interop_test/qit_jms_types.py
+ ${CMAKE_INSTALL_PREFIX}/lib/${PYTHON3_DIR_NAME}/site-packages/qpid_interop_test/qit_jms_types.py)")
+
# TODO: THIS IS UGLY!
# Find a way to handle this as part of the Python install process instead
# Set the following Python scripts to executable:
diff --git a/setup.py b/setup.py
index 6310d34..e11bea9 100644
--- a/setup.py
+++ b/setup.py
@@ -24,7 +24,7 @@
SHIM_DIR = '%s/shims' % LIBEXEC_DIR
setup(name='qpid-interop-test',
- version='0.1',
+ version='0.2',
description='Test suite for testing interoperability between Qpid AMQP clients',
author='Apache Qpid',
author_email='users@qpid.apache.org',
@@ -34,7 +34,8 @@
# Shims, installed into {INSTALL_PREFIX}/libexec/qpid_interop_test/shims/
data_files=[ ('%s/qpid-proton-python' % SHIM_DIR,
- ['shims/qpid-proton-python/src/_compat.py']
+ ['shims/qpid-proton-python/src/_compat.py',
+ ]
),
('%s/qpid-proton-python/amqp_types_test' % SHIM_DIR,
['shims/qpid-proton-python/src/amqp_types_test/Receiver.py',
diff --git a/shims/qpid-proton-python/src/jms_hdrs_props_test/Sender.py b/shims/qpid-proton-python/src/jms_hdrs_props_test/Sender.py
index 08a8e98..076920c 100755
--- a/shims/qpid-proton-python/src/jms_hdrs_props_test/Sender.py
+++ b/shims/qpid-proton-python/src/jms_hdrs_props_test/Sender.py
@@ -34,7 +34,7 @@
import proton
import proton.handlers
import proton.reactor
-from qpid_interop_test.qit_common import QitTestTypeMap
+#from qpid_interop_test.qit_common import QitTestTypeMap
from qpid_interop_test.qit_errors import InteropTestError
from qpid_interop_test.qit_jms_types import create_annotation
import _compat
@@ -125,6 +125,14 @@
return True
return False
+ @staticmethod
+ def merge_dicts(*dict_args):
+ """Merge two or more dictionaries"""
+ res = {}
+ for this_dict in dict_args:
+ res.update(this_dict)
+ return res
+
# TODO: Change this to return a list of messages. That way each test can return more than one message
def _create_message(self, test_value_type, test_value, value_num, hdr_kwargs, hdr_annotations):
"""Create a single message of the appropriate JMS message type"""
@@ -154,8 +162,8 @@
(test_value, test_value_type))
return proton.Message(id=(self.sent+1),
content_type='application/octet-stream',
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_MESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_MESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
def _create_jms_bytesmessage(self, test_value_type, test_value, hdr_kwargs, hdr_annotations):
@@ -190,8 +198,8 @@
body=body_bytes,
inferred=True,
content_type='application/octet-stream',
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_BYTESMESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_BYTESMESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
def _create_jms_mapmessage(self, test_value_type, test_value, name, hdr_kwargs, hdr_annotations):
@@ -222,8 +230,8 @@
return proton.Message(id=(self.sent+1),
body={name: value},
inferred=False,
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_MAPMESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_MAPMESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
def _create_jms_objectmessage(self, test_value, hdr_kwargs, hdr_annotations):
@@ -233,8 +241,8 @@
body=java_binary,
inferred=True,
content_type='application/x-java-serialized-object',
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_MAPMESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_MAPMESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
@staticmethod
@@ -279,16 +287,16 @@
return proton.Message(id=(self.sent+1),
body=body_list,
inferred=True,
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_STREAMMESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_STREAMMESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
def _create_jms_textmessage(self, test_value_text, hdr_kwargs, hdr_annotations):
"""Create a JMS text message"""
return proton.Message(id=(self.sent+1),
body=_compat.unicode(test_value_text),
- annotations=QitTestTypeMap.merge_dicts(create_annotation('JMS_TEXTMESSAGE_TYPE'),
- hdr_annotations),
+ annotations=JmsHdrsPropsTestSender.merge_dicts(create_annotation('JMS_TEXTMESSAGE_TYPE'),
+ hdr_annotations),
**hdr_kwargs)
def _get_jms_message_header_kwargs(self):