import unittest from idlelib import CallTips def myfunc(a, b, c=None): pass class MyClass(object): def __init__(self, a, b, c=None): pass def spam(self, d): pass class TestCallTips(unittest.TestCase): def test_function(self): self.assertEqual("(a, b, c=None)", CallTips.get_argspec(myfunc)) def test_builtin_function(self): self.assertEqual("format(value[, format_spec]) -> string", CallTips.get_argspec(format)) def test_constructors(self): # from http://bugs.python.org/issue7883 from http.client import HTTPConnection self.assertRegex(CallTips.get_argspec(HTTPConnection), r"\(host, port=None, strict=.+?, timeout=.+?, source_address=None\)") self.assertEqual("(a, b, c=None)", CallTips.get_argspec(MyClass)) def test_method(self): self.assertEqual("(d)", CallTips.get_argspec(MyClass.spam)) self.assertEqual("(d)", CallTips.get_argspec(MyClass(1, 2).spam)) if __name__ == "__main__": unittest.main()