[pypy-commit] pypy py3k: fix tests under -A, attrgetter now fails fast

pjenvey noreply at buildbot.pypy.org
Fri Jan 25 22:44:21 CET 2013


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r60487:8bdff3f40f7f
Date: 2013-01-25 13:30 -0800
http://bitbucket.org/pypy/pypy/changeset/8bdff3f40f7f/

Log:	fix tests under -A, attrgetter now fails fast

diff --git a/pypy/module/operator/app_operator.py b/pypy/module/operator/app_operator.py
--- a/pypy/module/operator/app_operator.py
+++ b/pypy/module/operator/app_operator.py
@@ -35,10 +35,8 @@
 
 def single_attr_getter(attr):
     if not isinstance(attr, str):
-        def _raise_typeerror(obj):
-            raise TypeError("argument must be a string, not %r" %
-                            (type(attr).__name__,))
-        return _raise_typeerror
+        raise TypeError("attribute name must be a string, not {!r}".format(
+                type(attr).__name__))
     #
     def make_getter(name, prevfn=None):
         if prevfn is None:
diff --git a/pypy/module/operator/test/test_operator.py b/pypy/module/operator/test/test_operator.py
--- a/pypy/module/operator/test/test_operator.py
+++ b/pypy/module/operator/test/test_operator.py
@@ -14,8 +14,6 @@
         assert a.getx(a) == 5
         assert a.get3("foobar") == "b"
         assert a.getx(*(a,)) == 5
-        assert a.get3(obj="foobar") == "b"
-        
 
     def test_getter_multiple_gest(self):
         import operator
@@ -29,12 +27,16 @@
         a.z = 'Z'
 
         assert operator.attrgetter('x','z','y')(a) == ('X', 'Z', 'Y')
-        raises(TypeError, operator.attrgetter('x', (), 'y'), a)
+        raises(TypeError, operator.attrgetter, ('x', (), 'y'))
 
         data = list(map(str, range(20)))
         assert operator.itemgetter(2,10,5)(data) == ('2', '10', '5')
         raises(TypeError, operator.itemgetter(2, 'x', 5), data)
 
+    def test_attrgetter(self):
+        import operator
+        raises(TypeError, operator.attrgetter, 2)
+
     def test_dotted_attrgetter(self):
         from operator import attrgetter
         class A:


More information about the pypy-commit mailing list