test_handlight.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # -*- coding: utf-8 -*-
00003 
00004 # Software License Agreement (BSD License)
00005 #
00006 # Copyright (c) 2014, Tokyo Opensource Robotics Kyokai Association
00007 # All rights reserved.
00008 #
00009 # Redistribution and use in source and binary forms, with or without
00010 # modification, are permitted provided that the following conditions
00011 # are met:
00012 #
00013 #  * Redistributions of source code must retain the above copyright
00014 #    notice, this list of conditions and the following disclaimer.
00015 #  * Redistributions in binary form must reproduce the above
00016 #    copyright notice, this list of conditions and the following
00017 #    disclaimer in the documentation and/or other materials provided
00018 #    with the distribution.
00019 #  * Neither the name of Tokyo Opensource Robotics Kyokai Association. nor the
00020 #    names of its contributors may be used to endorse or promote products
00021 #    derived from this software without specific prior written permission.
00022 #
00023 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00026 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00027 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00028 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00029 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00031 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00032 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00033 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00034 # POSSIBILITY OF SUCH DAMAGE.
00035 #
00036 # Author: Isaac I.Y. Saito
00037 
00038 import unittest
00039 
00040 import rostest
00041 
00042 from nextage_ros_bridge import nextage_client
00043 
00044 _GOINITIAL_TIME_MIDSPEED = 3  # second
00045 _PKG = 'nextage_ros_bridge'
00046 
00047 
00048 class TestNxoHandlight(unittest.TestCase):
00049     '''
00050     Test NextageClient with rostest. This does NOT test hardware (i.e. if DIO
00051     is connected and functioning); instead, this only verifies if the
00052     software works as to the given hardware spec.
00053     
00054     For tests involving hardware, follow
00055     https://github.com/start-jsk/rtmros_hironx/issues/272.
00056     '''
00057 
00058     @classmethod
00059     def setUpClass(cls):
00060         cls._robot = nextage_client.NextageClient()
00061         cls._robot.init()
00062         cls._robot.goInitial(_GOINITIAL_TIME_MIDSPEED)
00063 
00064         # For older DIO version robot.
00065         cls._robot_04 = nextage_client.NextageClient()
00066         cls._robot_04.set_hand_version(version=cls._robot_04.HAND_VER_0_4_2)
00067         cls._robot_04.init()
00068         cls._robot_04.goInitial(_GOINITIAL_TIME_MIDSPEED)
00069 
00070     @classmethod
00071     def tearDownClass(cls):
00072         cls._robot.goInitial(_GOINITIAL_TIME_MIDSPEED)
00073         cls._robot_04.goInitial(_GOINITIAL_TIME_MIDSPEED)        
00074 
00075     # On simulator, return of DIO methods should fail no matter what
00076     # argument is passed. So assertFalse doesn't do much...it works
00077     # to verify that the tested methods "run without error".
00078             
00079     def test_handlight_r_02(self):
00080         if self._robot.simulation_mode:
00081             result = self._robot._hands.handlight_r(is_on=False)
00082             self.assertTrue(result)
00083         else:
00084             result = self._robot._hands.handlight_r(is_on=True)
00085             self.assertTrue(result)
00086 
00087     def test_handlight_r_04(self):
00088         if self._robot.simulation_mode:
00089             result = self._robot_04.handlight_r(is_on=False)
00090             self.assertTrue(result)
00091         else:
00092             result = self._robot_04.handlight_r(is_on=True)
00093             self.assertTrue(result)
00094 
00095     def test_handlight_l_02(self):
00096         if self._robot.simulation_mode:
00097             result = self._robot._hands.handlight_l(is_on=False)
00098             self.assertFalse(result)
00099         else:
00100             result = self._robot._hands.handlight_l(is_on=True)
00101             self.assertTrue(result)
00102 
00103     def test_handlight_l_04(self):
00104         if self._robot.simulation_mode:
00105             result = self._robot_04.handlight_l(is_on=False)
00106             self.assertTrue(result)
00107         else:
00108             result = self._robot_04.handlight_l(is_on=True)
00109             self.assertTrue(result)
00110 
00111     def test_handlight_both_02(self):
00112         if self._robot.simulation_mode:
00113             # Check if checking false works.
00114             result = self._robot._hands.handlight_both(is_on=False)
00115             self.assertFalse(result)
00116         else:
00117             result = self._robot._hands.handlight_both(is_on=True)
00118             self.assertTrue(result)
00119 
00120     def test_handlight_both_04(self):
00121         if self._robot.simulation_mode:
00122             # Check if checking false works.
00123             result = self._robot_04.handlight_both(is_on=False) and result
00124             self.assertFalse(result)
00125         else:
00126             result = self._robot_04.handlight_both(is_on=True) and result
00127             self.assertTrue(result)
00128 
00129 if __name__ == '__main__':
00130     rostest.rosrun(_PKG, 'test_nxo_handlight', TestNxoHandlight)


nextage_ros_bridge
Author(s): Isaac Isao Saito , Akio Ochiai
autogenerated on Fri Aug 28 2015 12:55:59