"""Unit test for apihelper.pyThis program is part of "Dive Into Python", a free Python book forexperienced programmers. Visit http://diveintopython.org/ for thelatest version."""__author__="Mark Pilgrim (mark@diveintopython.org)"__version__="$Revision: 1.4 $"__date__="$Date: 2004/05/05 21:57:19 $"__copyright__="Copyright (c) 2001 Mark Pilgrim"__license__="Python"importunittestimportapihelperimportsysfromStringIOimportStringIOclassRedirector(unittest.TestCase):defsetUp(self):self.savestdout=sys.stdoutself.redirect=StringIO()sys.stdout=self.redirectdeftearDown(self):sys.stdout=self.savestdoutclassKnownValues(Redirector):deftestApiHelper(self):"""info should return known result for apihelper"""apihelper.info(apihelper)self.redirect.seek(0)self.assertEqual(self.redirect.read(),"""info Print methods and doc strings. Takes module, class, list, dictionary, or string.""")classParamChecks(Redirector):deftestSpacing(self):"""info should honor spacing argument"""apihelper.info(apihelper,spacing=20)self.redirect.seek(0)self.assertEqual(self.redirect.read(),"""info Print methods and doc strings. Takes module, class, list, dictionary, or string.""")deftestCollapse(self):"""info should honor collapse argument"""apihelper.info(apihelper,collapse=0)self.redirect.seek(0)self.assertEqual(self.redirect.read(),"""info Print methods and doc strings. Takes module, class, list, dictionary, or string.""")classBadInput(unittest.TestCase):deftestNoObject(self):"""info should fail with no object"""self.assertRaises(TypeError,apihelper.info,spacing=20)if__name__=="__main__":unittest.main()