diff --git a/LCS/Messaging/python/messaging/test/t_messagebus.py b/LCS/Messaging/python/messaging/test/t_messagebus.py index 5f2f2a9af6d75ee4650afccd3c317a90dc63a398..bd490c4edef899147364642190e9965c283494d9 100644 --- a/LCS/Messaging/python/messaging/test/t_messagebus.py +++ b/LCS/Messaging/python/messaging/test/t_messagebus.py @@ -28,6 +28,7 @@ import re import struct import sys import unittest +import logging from lofar.messaging.messages import * from lofar.messaging.messagebus import * @@ -35,6 +36,8 @@ from lofar.messaging.exceptions import MessageBusError, InvalidMessage TIMEOUT = 1.0 +logger = logging.getLogger(__name__) + # ======== FromBus unit tests ======== # @@ -284,8 +287,18 @@ class SendReceiveMessage(unittest.TestCase): content = {"request": "Do Something", "argument": "Very Often"} self._test_sendrecv(RequestMessage(content, reply_to=QUEUE)) + def test_sendrecv_request_message_with_large_content_map(self): + """ + Test send/receive of an RequestMessage, containing a dict with a large string value. + Qpid, cannot (de)serialize strings > 64k in a dict + """ + with self.assertRaises(Exception): + content = {"key1": "short message", "key2": "long message " + (2**17)*'a'} + self._test_sendrecv(RequestMessage(content, reply_to=QUEUE)) + if __name__ == '__main__': + logging.basicConfig(level=logging.INFO) QUEUE = sys.argv[1] if len(sys.argv) > 1 else "testqueue" del sys.argv[1:] unittest.main() diff --git a/LCS/Messaging/python/messaging/test/t_messagebus.run b/LCS/Messaging/python/messaging/test/t_messagebus.run index 28770b2f76b019ec5dec54e479c84f54e62a7300..e225bb14fa8abccee7fabc6f7d9436f3ebb9c745 100755 --- a/LCS/Messaging/python/messaging/test/t_messagebus.run +++ b/LCS/Messaging/python/messaging/test/t_messagebus.run @@ -1,20 +1,13 @@ #!/bin/bash -e -PYTHONVERSION=$(python -V|awk '{print $1}') -if [ $PYTHONVERSION \> "2.6.9" ] ; then +# Cleanup on normal exit and on SIGHUP, SIGINT, SIGQUIT, and SIGTERM +trap 'qpid-config del queue --force $queue' 0 1 2 3 15 - # Cleanup on normal exit and on SIGHUP, SIGINT, SIGQUIT, and SIGTERM - trap 'qpid-config del queue --force $queue' 0 1 2 3 15 +# Generate randome queue name +queue=$(< /dev/urandom tr -dc [:alnum:] | head -c16) - # Generate randome queue name - queue=$(< /dev/urandom tr -dc [:alnum:] | head -c16) - - # Create the queue - qpid-config add queue $queue - - # Run the unit test - source python-coverage.sh - python_coverage_test "Messaging/python" t_messagebus.py $queue -else - echo "Python version to low fo ctests" -fi +# Create the queue +qpid-config add queue $queue +# Run the unit test +source python-coverage.sh +python_coverage_test "Messaging/python" t_messagebus.py $queue