[pypy-svn] r41154 - in pypy/dist/pypy/module/clr: . test

antocuni at codespeak.net antocuni at codespeak.net
Fri Mar 23 11:51:37 CET 2007


Author: antocuni
Date: Fri Mar 23 11:51:36 2007
New Revision: 41154

Modified:
   pypy/dist/pypy/module/clr/interp_clr.py
   pypy/dist/pypy/module/clr/test/test_clr.py
Log:
test&fix a last-minute bug in the clr module



Modified: pypy/dist/pypy/module/clr/interp_clr.py
==============================================================================
--- pypy/dist/pypy/module/clr/interp_clr.py	(original)
+++ pypy/dist/pypy/module/clr/interp_clr.py	Fri Mar 23 11:51:36 2007
@@ -15,10 +15,14 @@
 
 def get_method(space, b_type, name, b_paramtypes):
     try:
-        return b_type.GetMethod(name, b_paramtypes)
+        method = b_type.GetMethod(name, b_paramtypes)
     except AmbiguousMatchException:
         msg = 'Multiple overloads for %s could match' % name
         raise OperationError(space.w_TypeError, space.wrap(msg))
+    if method is None:
+        msg = 'No overloads for %s could match' % name
+        raise OperationError(space.w_TypeError, space.wrap(msg))
+    return method
 
 def get_constructor(space, b_type, b_paramtypes):
     try:

Modified: pypy/dist/pypy/module/clr/test/test_clr.py
==============================================================================
--- pypy/dist/pypy/module/clr/test/test_clr.py	(original)
+++ pypy/dist/pypy/module/clr/test/test_clr.py	Fri Mar 23 11:51:36 2007
@@ -78,6 +78,11 @@
         assert obj.IndexOf(7) == 7
         assert obj.IndexOf(7, 0, 5) == -1
 
+    def test_wrong_overload(self):
+        import clr
+        Math = clr.load_cli_class('System', 'Math')
+        raises(TypeError, Math.Abs, "foo")
+
     def test_staticmethod(self):
         import clr
         Math = clr.load_cli_class('System', 'Math')



More information about the Pypy-commit mailing list