test_rospy_paramserver.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 import time
00039 import random
00040 import datetime
00041 
00042 from rosgraph.names import make_global_ns, ns_join
00043 
00044 ## Unit tests for rospy.paramserver module
00045 class TestRospyParamServer(unittest.TestCase):
00046     
00047     def test_param_server_cache(self):
00048         from rospy.impl.paramserver import get_param_server_cache
00049         ps = get_param_server_cache()
00050         self.assert_(ps is not None)
00051         try:
00052             ps.get('foo')
00053             self.fail("get should fail on non-existent key")
00054         except KeyError, e:
00055             pass
00056         for i in xrange(0, 10):
00057             k = 'key-%s%s'%(i, random.randint(0, 1000))
00058             v = 'value-%s'%random.randint(0, 1000)
00059             try:
00060                 ps.update(k, v)
00061                 self.fail("update should fail on non-existent key "+k)
00062             except KeyError, e:
00063                 pass
00064                 
00065             ps.set(k, v)
00066             self.assertEquals(v, ps.get(k))
00067             v = 'value-%s'%random.randint(0, 1000)
00068             ps.update(k, v)            
00069             self.assertEquals(v, ps.get(k))
00070         
00071             ps.delete(k)
00072             try:
00073                 ps.get(k)
00074                 self.fail('get should fail on deleted key')
00075             except KeyError: pass


test_rospy
Author(s): Ken Conley/kwc@willowgarage.com
autogenerated on Sat Dec 28 2013 17:36:20