[Python-checkins] r53851 - sandbox/trunk/pep362/pep362.py sandbox/trunk/pep362/test_pep362.py
brett.cannon
python-checkins at python.org
Thu Feb 22 01:15:56 CET 2007
Author: brett.cannon
Date: Thu Feb 22 01:15:54 2007
New Revision: 53851
Modified:
sandbox/trunk/pep362/pep362.py
sandbox/trunk/pep362/test_pep362.py
Log:
Get code back into shape so that it passes all unit tests again.
Modified: sandbox/trunk/pep362/pep362.py
==============================================================================
--- sandbox/trunk/pep362/pep362.py (original)
+++ sandbox/trunk/pep362/pep362.py Thu Feb 22 01:15:54 2007
@@ -1,3 +1,6 @@
+import inspect
+
+
class BindError(TypeError):
"""Represent a failure of inspect.Signature.bind() being able to to
determine if a binding of arguments to parameters is possible."""
@@ -64,7 +67,7 @@
func = func.im_func
self.name = func.__name__
- argspec = getargspec(func)
+ argspec = inspect.getargspec(func)
self.var_args = argspec[1] if (argspec[1] is not None) else ''
self.var_kw_args = argspec[2] if (argspec[2] is not None) else ''
Modified: sandbox/trunk/pep362/test_pep362.py
==============================================================================
--- sandbox/trunk/pep362/test_pep362.py (original)
+++ sandbox/trunk/pep362/test_pep362.py Thu Feb 22 01:15:54 2007
@@ -1,3 +1,9 @@
+import pep362
+
+import unittest
+from test import test_support
+import pep362_fodder
+
class ParameterObjectTests(unittest.TestCase):
"""Test the Parameter object."""
@@ -6,61 +12,61 @@
# Test that 'name' attribute works.
# Must test both using a string and a tuple of strings.
name = "test"
- param = inspect.Parameter(name, 0, False)
+ param = pep362.Parameter(name, 0, False)
self.failUnlessEqual(param.name, name)
name = ('a', ('b',))
- param = inspect.Parameter(name, 0, False)
+ param = pep362.Parameter(name, 0, False)
self.failUnlessEqual(param.name, name)
def test_position(self):
# Test the 'position' attribute.
pos = 42
- param = inspect.Parameter("_", pos, False)
+ param = pep362.Parameter("_", pos, False)
self.failUnlessEqual(param.position, pos)
def test_has_default(self):
# Test the 'has_default' attribute.
# Testing that 'default_value' is not set is handled in the testing of
# that attribute.
- param = inspect.Parameter('_', 0, True, None)
+ param = pep362.Parameter('_', 0, True, None)
self.failUnlessEqual(param.has_default, True)
- param = inspect.Parameter('_', 0, False)
+ param = pep362.Parameter('_', 0, False)
self.failUnlessEqual(param.has_default, False)
- self.failUnlessRaises(TypeError, inspect.Parameter,
+ self.failUnlessRaises(TypeError, pep362.Parameter,
('_', 0, False, 'extra arg'))
- self.failUnlessRaises(TypeError, inspect.Parameter,
+ self.failUnlessRaises(TypeError, pep362.Parameter,
('_', 0, True))
- self.failUnlessRaises(TypeError, inspect.Parameter,
+ self.failUnlessRaises(TypeError, pep362.Parameter,
('_', 0, True, 'default', 'extra'))
def test_default_value(self):
# Test the 'default_value' attribute.
# Make sure that if has_default is set to False that default_value is
# not defined.
- param = inspect.Parameter('_', 0, False)
+ param = pep362.Parameter('_', 0, False)
self.failUnless(not hasattr(param, 'default_value'))
default = 42
- param = inspect.Parameter('_', 0, True, default)
+ param = pep362.Parameter('_', 0, True, default)
self.failUnlessEqual(param.default_value, default)
def test_str(self):
# Test __str__().
name = "X"
- param = inspect.Parameter(name, 0, False)
+ param = pep362.Parameter(name, 0, False)
self.failUnlessEqual(name, str(param))
default_value = 42
- param = inspect.Parameter(name, 0, True, default_value)
+ param = pep362.Parameter(name, 0, True, default_value)
self.failUnlessEqual("%s=%s" % (name, default_value), str(param))
def test_repr(self):
# Test __repr__().
name = "X"
pos = 0
- param = inspect.Parameter(name, pos, False)
+ param = pep362.Parameter(name, pos, False)
self.failUnlessEqual("Parameter(%r, %r, False)" % (name, pos),
repr(param))
default_value = 42
- param = inspect.Parameter(name, pos, True, default_value)
+ param = pep362.Parameter(name, pos, True, default_value)
self.failUnlessEqual("Parameter(%r, %r, True, %r)" %
(name, pos, default_value),
repr(param))
@@ -70,7 +76,7 @@
def test_no_args(self):
# Test a function with no arguments.
- sig = inspect.Signature(mod.no_args)
+ sig = pep362.Signature(pep362_fodder.no_args)
self.failUnlessEqual('no_args', sig.name)
self.failUnless(not sig.var_args)
self.failUnless(not sig.var_kw_args)
@@ -78,23 +84,23 @@
def test_var_args(self):
# Test the var_args attribute.
- sig = inspect.Signature(mod.var_args)
+ sig = pep362.Signature(pep362_fodder.var_args)
self.failUnlessEqual('args', sig.var_args)
self.failUnlessEqual(0, len(sig.parameters))
- sig = inspect.Signature(mod.no_args)
+ sig = pep362.Signature(pep362_fodder.no_args)
self.failUnlessEqual('', sig.var_args)
def test_var_kw_args(self):
# Test the var_kw_args attribute.
- sig = inspect.Signature(mod.var_kw_args)
+ sig = pep362.Signature(pep362_fodder.var_kw_args)
self.failUnlessEqual('var_kw_args', sig.name)
self.failUnlessEqual('kwargs', sig.var_kw_args)
self.failUnlessEqual(0, len(sig.parameters))
- sig = inspect.Signature(mod.no_args)
+ sig = pep362.Signature(pep362_fodder.no_args)
self.failUnlessEqual('', sig.var_kw_args)
def test_parameter_positional(self):
- sig = inspect.Signature(mod.no_default_args)
+ sig = pep362.Signature(pep362_fodder.no_default_args)
self.failUnlessEqual('no_default_args', sig.name)
param = sig.parameters[0]
self.failUnlessEqual('a', param.name)
@@ -103,7 +109,7 @@
self.failUnless(not hasattr(param, 'default_value'))
def test_parameter_default(self):
- sig = inspect.Signature(mod.default_args)
+ sig = pep362.Signature(pep362_fodder.default_args)
self.failUnlessEqual('default_args', sig.name)
param = sig.parameters[0]
self.failUnlessEqual('a', param.name)
@@ -112,7 +118,7 @@
self.failUnlessEqual(42, param.default_value)
def test_parameter_tuple(self):
- sig = inspect.Signature(mod.tuple_args)
+ sig = pep362.Signature(pep362_fodder.tuple_args)
self.failUnlessEqual('tuple_args', sig.name)
param = sig.parameters[0]
self.failUnless(isinstance(param.name, tuple))
@@ -122,7 +128,7 @@
self.failUnless(not hasattr(param, 'default_value'))
def test_parameter_tuple_default(self):
- sig = inspect.Signature(mod.default_tuple_args)
+ sig = pep362.Signature(pep362_fodder.default_tuple_args)
self.failUnlessEqual('default_tuple_args', sig.name)
param = sig.parameters[0]
self.failUnlessEqual(('a', ('b',)), param.name)
@@ -131,42 +137,42 @@
self.failUnlessEqual((1, (2,)), param.default_value)
def test_positioning(self):
- sig = inspect.Signature(mod.all_args)
+ sig = pep362.Signature(pep362_fodder.all_args)
param = sig.parameters[2]
self.failUnlessEqual('d', param.name)
- def test_getsignature(self):
+ def test_signature(self):
def fresh_func():
pass
self.failUnless(not hasattr(fresh_func, '__signature__'))
- sig = inspect.getsignature(fresh_func)
+ sig = pep362.signature(fresh_func)
self.failUnlessEqual(sig, fresh_func.__signature__)
- sig2 = inspect.getsignature(fresh_func)
+ sig2 = pep362.signature(fresh_func)
self.failUnlessEqual(sig, sig2)
class FreshClass(object):
def fresh_method(self):
pass
- sig = inspect.getsignature(FreshClass.fresh_method)
+ sig = pep362.signature(FreshClass.fresh_method)
self.failUnlessEqual(sig, FreshClass.fresh_method.im_func.__signature__)
def test_str(self):
# Test __str__().
- sig = inspect.Signature(mod.no_args)
+ sig = pep362.Signature(pep362_fodder.no_args)
self.failUnlessEqual("no_args()", str(sig))
- sig = inspect.Signature(mod.var_args)
+ sig = pep362.Signature(pep362_fodder.var_args)
self.failUnlessEqual("var_args(*args)", str(sig))
- sig = inspect.Signature(mod.var_kw_args)
+ sig = pep362.Signature(pep362_fodder.var_kw_args)
self.failUnlessEqual("var_kw_args(**kwargs)", str(sig))
- sig = inspect.Signature(mod.default_args)
+ sig = pep362.Signature(pep362_fodder.default_args)
self.failUnlessEqual("default_args(a=42)", str(sig))
- sig = inspect.Signature(mod.no_default_args)
+ sig = pep362.Signature(pep362_fodder.no_default_args)
self.failUnlessEqual("no_default_args(a)", str(sig))
- sig = inspect.Signature(mod.tuple_args)
+ sig = pep362.Signature(pep362_fodder.tuple_args)
self.failUnlessEqual("tuple_args((a, (b,)))", str(sig))
- sig = inspect.Signature(mod.default_tuple_args)
+ sig = pep362.Signature(pep362_fodder.default_tuple_args)
self.failUnlessEqual("default_tuple_args((a, (b,))=(1, (2,)))",
str(sig))
- sig = inspect.Signature(mod.all_args)
+ sig = pep362.Signature(pep362_fodder.all_args)
self.failUnlessEqual("all_args(a, (b, (c,)), d=0, "
"(e, (f,))=(1, (2,)), *g, **h)",
str(sig))
@@ -176,14 +182,14 @@
"""Test Signature.bind()."""
def test_no_parameters(self):
- sig = inspect.Signature(mod.no_args)
+ sig = pep362.Signature(pep362_fodder.no_args)
binding = sig.bind()
self.failUnlessEqual({}, binding)
self.failUnlessRaises(TypeError, sig.bind, 42)
self.failUnlessRaises(TypeError, sig.bind, a=0)
def test_var_parameters(self):
- sig = inspect.Signature(mod.var_args)
+ sig = pep362.Signature(pep362_fodder.var_args)
binding = sig.bind(0, 1, 2)
self.failUnlessEqual({'args':(0, 1, 2)}, binding)
binding = sig.bind()
@@ -191,7 +197,7 @@
self.failUnlessRaises(TypeError, sig.bind, a=0)
def test_var_kw_parameters(self):
- sig = inspect.Signature(mod.var_kw_args)
+ sig = pep362.Signature(pep362_fodder.var_kw_args)
binding = sig.bind(a=0)
self.failUnlessEqual({'kwargs':{'a':0}}, binding)
binding = sig.bind()
@@ -199,7 +205,7 @@
self.failUnlessRaises(TypeError, sig.bind, 42)
def test_positional_parameters(self):
- sig = inspect.Signature(mod.no_default_args)
+ sig = pep362.Signature(pep362_fodder.no_default_args)
binding = sig.bind(42)
self.failUnlessEqual({'a':42}, binding)
binding = sig.bind(a=42)
@@ -209,7 +215,7 @@
self.failUnlessRaises(TypeError, sig.bind, b=0)
def test_keyword_parameters(self):
- sig = inspect.Signature(mod.default_args)
+ sig = pep362.Signature(pep362_fodder.default_args)
binding = sig.bind(0)
self.failUnlessEqual({'a':0}, binding)
binding = sig.bind()
@@ -221,7 +227,7 @@
self.failUnlessRaises(TypeError, sig.bind, b=1)
def test_tuple_parameter(self):
- sig = inspect.Signature(mod.tuple_args)
+ sig = pep362.Signature(pep362_fodder.tuple_args)
binding = sig.bind((1, (2,)))
self.failUnlessEqual({('a', ('b',)):(1, (2,))}, binding)
arg = (1, ((2,),))
@@ -231,7 +237,7 @@
self.failUnlessRaises(TypeError, sig.bind, (1, 2))
def test_default_tuple_parameter(self):
- sig = inspect.Signature(mod.default_tuple_args)
+ sig = pep362.Signature(pep362_fodder.default_tuple_args)
binding = sig.bind()
self.failUnlessEqual({('a', ('b',)):(1, (2,))}, binding)
arg = (0, (1,))
@@ -239,7 +245,7 @@
self.failUnlessEqual({('a', ('b',)):arg}, binding)
def test_all_parameter_types(self):
- sig = inspect.Signature(mod.all_args)
+ sig = pep362.Signature(pep362_fodder.all_args)
binding = sig.bind(0, (1, (2,)), 3, (4, (5,)), 6, i=7)
expected = {'a':0, ('b', ('c',)):(1, (2,)), 'd':3,
('e', ('f',)):(4, (5,)), 'g':(6,), 'h':{'i':7}}
@@ -249,7 +255,15 @@
def gen():
yield 0
yield (1,)
- sig = inspect.Signature(mod.tuple_args)
- self.failUnlessRaises(inspect.BindError, sig.bind, gen())
+ sig = pep362.Signature(pep362_fodder.tuple_args)
+ self.failUnlessRaises(pep362.BindError, sig.bind, gen())
+
+
+def test_main():
+ test_support.run_unittest(ParameterObjectTests,
+ SignatureObjectTests,
+ )
+if __name__ == '__main__':
+ test_main()
More information about the Python-checkins
mailing list