test_gensrv_py.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # Software License Agreement (BSD License)
00003 #
00004 # Copyright (c) 2008, Willow Garage, Inc.
00005 # All rights reserved.
00006 #
00007 # Redistribution and use in source and binary forms, with or without
00008 # modification, are permitted provided that the following conditions
00009 # are met:
00010 #
00011 #  * Redistributions of source code must retain the above copyright
00012 #    notice, this list of conditions and the following disclaimer.
00013 #  * Redistributions in binary form must reproduce the above
00014 #    copyright notice, this list of conditions and the following
00015 #    disclaimer in the documentation and/or other materials provided
00016 #    with the distribution.
00017 #  * Neither the name of Willow Garage, Inc. nor the names of its
00018 #    contributors may be used to endorse or promote products derived
00019 #    from this software without specific prior written permission.
00020 #
00021 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032 # POSSIBILITY OF SUCH DAMAGE.
00033 
00034 import os
00035 import sys
00036 import struct
00037 import unittest
00038 from cStringIO import StringIO
00039 import time
00040 import random
00041 import math
00042 
00043 from genpy import SerializationError
00044         
00045 class TestGensrvPy(unittest.TestCase):
00046 
00047     ## Utility for testing roundtrip serialization
00048     ## @param orig Message to test roundtrip serialization of
00049     ## @param blank Uninitialized instance of message to deserialize into
00050     ## @param float bool: if True, use almostEquals instead of equals
00051     ## comparison. This variant assumes only data field is named
00052     ## 'data'
00053     def _test_ser_deser(self, orig, blank, float=False):
00054         b = StringIO()
00055         orig.serialize(b)
00056         blank.deserialize(b.getvalue())
00057         if not float:
00058             self.assertEquals(orig, blank, str(orig)+" != "+str(blank))
00059         else:
00060             self.assertAlmostEquals(orig.data, blank.data, 5)
00061 
00062     ## #2133/2139
00063     def test_test_rospy_TransitiveImport(self):
00064         from test_rospy.srv import TransitiveSrvRequest
00065         m = TransitiveSrvRequest()
00066         # invoking serialize should be enough to expose issue. The bug
00067         # was that genmsg_py was failing to include the imports of
00068         # embedded messages. Because messages are flattened, this
00069         # causes ImportErrors.
00070         self._test_ser_deser(m, TransitiveSrvRequest())        


test_rospy
Author(s): Ken Conley
autogenerated on Mon Oct 6 2014 11:47:19