[pypy-svn] r56487 - in pypy/branch/always-oldstyle: lib-python lib-python/modified-2.4.1 lib-python/modified-2.4.1/test pypy pypy/config pypy/doc/config pypy/interpreter pypy/interpreter/test pypy/module/__builtin__ pypy/module/__builtin__/test pypy/module/operator/test pypy/objspace/std pypy/objspace/std/test pypy/objspace/test pypy/translator/goal
arigo at codespeak.net
arigo at codespeak.net
Sat Jul 12 13:02:44 CEST 2008
Author: arigo
Date: Sat Jul 12 13:02:42 2008
New Revision: 56487
Removed:
pypy/branch/always-oldstyle/lib-python/modified-2.4.1/types.py
pypy/branch/always-oldstyle/pypy/doc/config/objspace.std.oldstyle.txt
Modified:
pypy/branch/always-oldstyle/lib-python/conftest.py
pypy/branch/always-oldstyle/lib-python/modified-2.4.1/test/test_repr.py
pypy/branch/always-oldstyle/pypy/config/pypyoption.py
pypy/branch/always-oldstyle/pypy/conftest.py
pypy/branch/always-oldstyle/pypy/interpreter/baseobjspace.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_appinterp.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_class.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_compiler.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_exec.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_function.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_interpreter.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_objspace.py
pypy/branch/always-oldstyle/pypy/interpreter/test/test_raise.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/__init__.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/operation.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_builtin.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_classobj.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_descriptor.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_functional.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_reduce.py
pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_vars.py
pypy/branch/always-oldstyle/pypy/module/operator/test/test_operator.py
pypy/branch/always-oldstyle/pypy/objspace/std/objspace.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_complexobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_dictobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_floatobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_index.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_intobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_iterobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_function.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_internals.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_stringobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_typeobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_unicodeobject.py
pypy/branch/always-oldstyle/pypy/objspace/std/test/test_userobject.py
pypy/branch/always-oldstyle/pypy/objspace/test/test_descriptor.py
pypy/branch/always-oldstyle/pypy/translator/goal/app_main.py
Log:
Remove the --oldstyle option. Fix a few small bugs in the tests.
Port hopefully all tests that used "class A:" to create new-style
classes.
Modified: pypy/branch/always-oldstyle/lib-python/conftest.py
==============================================================================
--- pypy/branch/always-oldstyle/lib-python/conftest.py (original)
+++ pypy/branch/always-oldstyle/lib-python/conftest.py Sat Jul 12 13:02:42 2008
@@ -297,24 +297,16 @@
class RegrTest:
""" Regression Test Declaration."""
def __init__(self, basename, enabled=False, dumbtest=False,
- oldstyle=False, core=False,
+ core=False,
compiler=None,
usemodules = ''):
self.basename = basename
self.enabled = enabled
self.dumbtest = dumbtest
- # we have to determine the value of oldstyle
- # lazily because at RegrTest() call time the command
- # line options haven't been parsed!
- self._oldstyle = oldstyle
self._usemodules = usemodules.split()
self._compiler = compiler
self.core = core
- def oldstyle(self):
- return self._oldstyle #or pypy_option.oldstyle
- oldstyle = property(oldstyle)
-
def usemodules(self):
return self._usemodules #+ pypy_option.usemodules
usemodules = property(usemodules)
@@ -325,7 +317,7 @@
def getoptions(self):
l = []
- for name in 'oldstyle', 'core':
+ for name in ['core']:
if getattr(self, name):
l.append(name)
for name in self.usemodules:
@@ -365,18 +357,13 @@
self._prepare(space)
fspath = self.getfspath()
assert fspath.check()
- if self.oldstyle:
- space.enable_old_style_classes_as_default_metaclass()
- try:
- modname = fspath.purebasename
- space.appexec([], '''():
- from test import %(modname)s
- m = %(modname)s
- if hasattr(m, 'test_main'):
- m.test_main()
- ''' % locals())
- finally:
- space.enable_new_style_classes_as_default_metaclass()
+ modname = fspath.purebasename
+ space.appexec([], '''():
+ from test import %(modname)s
+ m = %(modname)s
+ if hasattr(m, 'test_main'):
+ m.test_main()
+ ''' % locals())
testmap = [
RegrTest('test___all__.py', enabled=True, core=True),
@@ -422,7 +409,7 @@
RegrTest('test_cgi.py', enabled=True),
RegrTest('test_charmapcodec.py', enabled=True, core=True),
RegrTest('test_cl.py', enabled=False, dumbtest=1),
- RegrTest('test_class.py', enabled=True, oldstyle=True, core=True),
+ RegrTest('test_class.py', enabled=True, core=True),
RegrTest('test_cmath.py', enabled=True, dumbtest=1, core=True),
RegrTest('test_codeccallbacks.py', enabled=True, core=True),
RegrTest('test_codecencodings_cn.py', enabled=False),
@@ -438,11 +425,11 @@
RegrTest('test_codecmaps_tw.py', enabled=False),
RegrTest('test_codecs.py', enabled=True, core=True),
RegrTest('test_codeop.py', enabled=True, core=True),
- RegrTest('test_coercion.py', enabled=True, oldstyle=True, core=True),
+ RegrTest('test_coercion.py', enabled=True, core=True),
RegrTest('test_colorsys.py', enabled=True),
RegrTest('test_commands.py', enabled=True),
- RegrTest('test_compare.py', enabled=True, oldstyle=True, core=True),
+ RegrTest('test_compare.py', enabled=True, core=True),
RegrTest('test_compile.py', enabled=True, core=True),
RegrTest('test_compiler.py', enabled=True, core=False), # this test tests the compiler package from stdlib
RegrTest('test_complex.py', enabled=True, core=True),
@@ -463,8 +450,8 @@
RegrTest('test_decimal.py', enabled=True),
RegrTest('test_decorators.py', enabled=True, core=True),
RegrTest('test_deque.py', enabled=True, core=True),
- RegrTest('test_descr.py', enabled=True, core=True, oldstyle=True, usemodules='_weakref'),
- RegrTest('test_descrtut.py', enabled=True, core=True, oldstyle=True),
+ RegrTest('test_descr.py', enabled=True, core=True, usemodules='_weakref'),
+ RegrTest('test_descrtut.py', enabled=True, core=True),
RegrTest('test_dict.py', enabled=True, core=True),
RegrTest('test_difflib.py', enabled=True, dumbtest=1),
@@ -577,7 +564,7 @@
RegrTest('test_multifile.py', enabled=True),
RegrTest('test_mutants.py', enabled=True, dumbtest=1, core="possibly"),
RegrTest('test_netrc.py', enabled=True),
- RegrTest('test_new.py', enabled=True, core=True, oldstyle=True),
+ RegrTest('test_new.py', enabled=True, core=True),
RegrTest('test_nis.py', enabled=False),
RegrTest('test_normalization.py', enabled=False),
RegrTest('test_ntpath.py', enabled=True, dumbtest=1),
@@ -635,7 +622,7 @@
RegrTest('test_re.py', enabled=True, core=True),
RegrTest('test_regex.py', enabled=False),
- RegrTest('test_repr.py', enabled=True, oldstyle=True, core=True),
+ RegrTest('test_repr.py', enabled=True, core=True),
#rev 10840: 6 of 12 tests fail. Always minor stuff like
#'<function object at 0x40db3e0c>' != '<built-in function hash>'
@@ -903,11 +890,6 @@
if option.use_compiled:
execpath, info = getexecutable()
pypy_options = []
- if regrtest.oldstyle:
- if (option.use_compiled and
- not info.get('objspace.std.oldstyle', False)):
- py.test.skip("old-style classes not available with this pypy-c")
- pypy_options.append('--oldstyle')
if regrtest.compiler:
pypy_options.append('--compiler=%s' % regrtest.compiler)
pypy_options.extend(
Modified: pypy/branch/always-oldstyle/lib-python/modified-2.4.1/test/test_repr.py
==============================================================================
--- pypy/branch/always-oldstyle/lib-python/modified-2.4.1/test/test_repr.py (original)
+++ pypy/branch/always-oldstyle/lib-python/modified-2.4.1/test/test_repr.py Sat Jul 12 13:02:42 2008
@@ -97,9 +97,6 @@
eq(r(n), expected)
def test_instance(self):
- # Disabled for PyPy because it relies on oldstyle class behaviour.
- # Running the test under oldstyle results in many more other problems
- # though.
eq = self.assertEquals
i1 = ClassWithRepr("a")
eq(r(i1), repr(i1))
@@ -134,8 +131,9 @@
# Functions
eq(repr(hash), '<built-in function hash>')
# Methods
- self.failUnless(repr(''.split).find(
- "bound method str.split of '' at 0x") > -1)
+ self.failUnless('method' in repr(''.split))
+ self.failUnless('str' in repr(''.split))
+ self.failUnless('split' in repr(''.split))
def test_xrange(self):
import warnings
@@ -174,7 +172,9 @@
def test_descriptors(self):
eq = self.assertEquals
# method descriptors
- eq(repr(dict.items), "<unbound method dict.items>")
+ self.assert_('method' in repr(dict.items))
+ self.assert_('dict' in repr(dict.items))
+ self.assert_('items' in repr(dict.items))
# XXX member descriptors
# XXX attribute descriptors
# XXX slot descriptors
@@ -222,8 +222,7 @@
os.remove(p)
del sys.path[0]
- def DONOTtest_module(self):
- # PyPy really doesn't (want to) do these complex module reprs.
+ def test_module(self):
eq = self.assertEquals
touch(os.path.join(self.subpkgname, self.pkgname + os.extsep + 'py'))
from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import areallylongpackageandmodulenametotestreprtruncation
Modified: pypy/branch/always-oldstyle/pypy/config/pypyoption.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/config/pypyoption.py (original)
+++ pypy/branch/always-oldstyle/pypy/config/pypyoption.py Sat Jul 12 13:02:42 2008
@@ -287,10 +287,6 @@
"track types that override __getattribute__",
default=False),
- BoolOption("oldstyle",
- "specify whether the default metaclass should be classobj",
- default=False, cmdline="-k --oldstyle"),
-
BoolOption("logspaceoptypes",
"a instrumentation option: before exit, print the types seen by "
"certain simpler bytecodes",
Modified: pypy/branch/always-oldstyle/pypy/conftest.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/conftest.py (original)
+++ pypy/branch/always-oldstyle/pypy/conftest.py Sat Jul 12 13:02:42 2008
@@ -90,8 +90,6 @@
"module %r required" % (modname,))
continue
if info is None:
- if key == 'objspace.std.oldstyle' and value:
- continue # fine on CPython
py.test.skip("cannot runappdirect this test on top of CPython")
has = info.get(key, None)
if has != value:
Modified: pypy/branch/always-oldstyle/pypy/interpreter/baseobjspace.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/baseobjspace.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/baseobjspace.py Sat Jul 12 13:02:42 2008
@@ -207,7 +207,7 @@
full_exceptions = True # full support for exceptions (normalization & more)
- def __init__(self, config=None, **kw):
+ def __init__(self, config=None):
"NOT_RPYTHON: Basic initialization of objects."
self.fromcache = InternalSpaceCache(self).getorbuild
self.threadlocals = ThreadLocals()
@@ -227,7 +227,6 @@
self.frame_trace_action = FrameTraceAction(self)
self.actionflag.register_action(self.user_del_action)
self.actionflag.register_action(self.frame_trace_action)
- self.setoptions(**kw)
from pypy.interpreter.pyframe import PyFrame
self.FrameClass = PyFrame # can be overridden to a subclass
@@ -237,10 +236,6 @@
self.initialize()
- def setoptions(self):
- # override this in subclasses for extra-options
- pass
-
def startup(self):
# To be called before using the space
@@ -735,10 +730,15 @@
return w_value
return None
+ def is_oldstyle_instance(self, w_obj):
+ # xxx hack hack hack
+ from pypy.module.__builtin__.interp_classobj import W_InstanceObject
+ obj = self.interpclass_w(w_obj)
+ return obj is not None and isinstance(obj, W_InstanceObject)
+
def callable(self, w_obj):
if self.lookup(w_obj, "__call__") is not None:
- w_is_oldstyle = self.isinstance(w_obj, self.w_instance)
- if self.is_true(w_is_oldstyle):
+ if self.is_oldstyle_instance(w_obj):
# ugly old style class special treatment, but well ...
try:
self.getattr(w_obj, self.wrap("__call__"))
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_appinterp.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_appinterp.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_appinterp.py Sat Jul 12 13:02:42 2008
@@ -86,7 +86,7 @@
def test_applevel_class(space, applevel_temp = applevel_temp):
app = applevel_temp('''
- class C:
+ class C(object):
clsattr = 42
def __init__(self, x=13):
self.attr = x
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_class.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_class.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_class.py Sat Jul 12 13:02:42 2008
@@ -46,28 +46,28 @@
assert c.__class__ == C
def test_method(self):
- class C:
+ class C(object):
def meth(self):
return 1
c = C()
assert c.meth() == 1
def test_method_exc(self):
- class C:
+ class C(object):
def meth(self):
raise RuntimeError
c = C()
raises(RuntimeError, c.meth)
def test_class_attr(self):
- class C:
+ class C(object):
a = 42
c = C()
assert c.a == 42
assert C.a == 42
def test_class_attr_inherited(self):
- class C:
+ class C(object):
a = 42
class D(C):
pass
@@ -110,7 +110,7 @@
assert float(x) == 5.5
def test_meth_doc(self):
- class C:
+ class C(object):
def meth_no_doc(self):
pass
def meth_doc(self):
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_compiler.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_compiler.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_compiler.py Sat Jul 12 13:02:42 2008
@@ -350,7 +350,7 @@
def test_mangling(self):
snippet = str(py.code.Source(r'''
__g = "42"
- class X:
+ class X(object):
def __init__(self, u):
self.__u = u
def __f(__self, __n):
@@ -390,7 +390,7 @@
def test_chained_access_augassign(self):
snippet = str(py.code.Source(r'''
- class R:
+ class R(object):
count = 0
c = 0
for i in [0,1,2]:
@@ -480,7 +480,7 @@
def f(self):
def get_nested_class():
self
- class Test:
+ class Test(object):
def _STOP_HERE_(self):
return _STOP_HERE_(self)
get_nested_class()
@@ -496,7 +496,7 @@
space = self.space
snippet = str(py.code.Source(r'''
def f(x):
- class Test:
+ class Test(object):
def meth(self):
return x + 1
return Test()
@@ -533,7 +533,7 @@
snippet = str(py.code.Source(r'''
def f():
method_and_var = "var"
- class Test:
+ class Test(object):
def method_and_var(self):
return "method"
def test(self):
@@ -630,7 +630,7 @@
class AppTestOptimizer:
def test_constant_fold_add(self):
import parser
- class Folder:
+ class Folder(object):
def defaultvisit(self, node):
return node
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_exec.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_exec.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_exec.py Sat Jul 12 13:02:42 2008
@@ -119,7 +119,7 @@
def test_nested_names_are_not_confused(self):
def get_nested_class():
method_and_var = "var"
- class Test:
+ class Test(object):
def method_and_var(self):
return "method"
def test(self):
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_function.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_function.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_function.py Sat Jul 12 13:02:42 2008
@@ -191,7 +191,7 @@
def test_get_get(self):
# sanxiyn's test from email
def m(self): return self
- class C: pass
+ class C(object): pass
class D(C): pass
C.m = m
D.m = C.m
@@ -201,7 +201,7 @@
assert d.m() == d
def test_method_eq(self):
- class C:
+ class C(object):
def m(): pass
c = C()
assert C.m == C.m
@@ -229,10 +229,6 @@
assert repr(A.f) == "<unbound method A.f>"
assert repr(A().f).startswith("<bound method A.f of <")
class B:
- try:
- __metaclass__ = _classobj
- except NameError: # non-pypy, assuming oldstyle implicitely
- pass
def f(self):
pass
assert repr(B.f) == "<unbound method B.f>"
@@ -240,13 +236,13 @@
def test_method_call(self):
- class C:
+ class C(object):
def __init__(self, **kw):
pass
c = C(type='test')
def test_method_w_callable(self):
- class A:
+ class A(object):
def __call__(self, x):
return x
import new
@@ -254,7 +250,7 @@
assert im() == 3
def test_method_w_callable_call_function(self):
- class A:
+ class A(object):
def __call__(self, x, y):
return x+y
import new
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_interpreter.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_interpreter.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_interpreter.py Sat Jul 12 13:02:42 2008
@@ -263,7 +263,7 @@
def test_print(self):
import sys
save = sys.stdout
- class Out:
+ class Out(object):
def __init__(self):
self.args = []
def write(self, *args):
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_objspace.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_objspace.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_objspace.py Sat Jul 12 13:02:42 2008
@@ -108,7 +108,7 @@
w_oldstyle = self.space.appexec([], """():
class NoCall:
- __metaclass__ = _classobj
+ pass
return NoCall()""")
assert not is_callable(w_oldstyle)
self.space.setattr(w_oldstyle, self.space.wrap("__call__"), w_func)
Modified: pypy/branch/always-oldstyle/pypy/interpreter/test/test_raise.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/interpreter/test/test_raise.py (original)
+++ pypy/branch/always-oldstyle/pypy/interpreter/test/test_raise.py Sat Jul 12 13:02:42 2008
@@ -96,7 +96,7 @@
raises(StopIteration, f)
def test_userclass(self):
- class A:
+ class A(object):
def __init__(self, x=None):
self.x = x
class B(A):
@@ -124,7 +124,8 @@
assert b.x == 42
def test_it(self):
- C = _classobj('C', (), {})
+ class C:
+ pass
# this used to explode in the exception normalization step:
try:
{}[C]
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/__init__.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/__init__.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/__init__.py Sat Jul 12 13:02:42 2008
@@ -68,11 +68,8 @@
'file' : 'state.get(space).w_file',
'open' : 'state.get(space).w_file',
- # old-style classes dummy support
- '_classobj' : 'interp_classobj.W_ClassObject',
- '_instance' : 'interp_classobj.W_InstanceObject',
- # default __metaclass__
- '__metaclass__' : '(space.w_type)',
+ # default __metaclass__: old-style class
+ '__metaclass__' : 'interp_classobj.W_ClassObject',
# interp-level function definitions
'abs' : 'operation.abs',
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/operation.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/operation.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/operation.py Sat Jul 12 13:02:42 2008
@@ -181,20 +181,6 @@
"""
if w_sentinel is None:
return space.iter(w_collection_or_callable)
- # XXX it seems that CPython checks the following
- # for newstyle but doesn't for oldstyle classes :-(
- #w_res = space.iter(w_collection_or_callable)
- #w_typeres = space.type(w_res)
- #try:
- # space.getattr(w_typeres, space.wrap('next'))
- #except OperationError, e:
- # if not e.match(space, space.w_AttributeError):
- # raise
- # raise OperationError(space.w_TypeError,
- # space.wrap("iter() returned non-iterator of type '%s'" %
- # w_typeres.name))
- #else:
- # return w_res
else:
return iter_sentinel(space, w_collection_or_callable, w_sentinel)
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_builtin.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_builtin.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_builtin.py Sat Jul 12 13:02:42 2008
@@ -75,16 +75,16 @@
def nosp(x): return [y for y in x if y[0]!='_']
assert f() == []
assert g() == ['a', 'b', 'c']
- class X: pass
+ class X(object): pass
assert nosp(dir(X)) == []
- class X:
+ class X(object):
a = 23
c = 45
b = 67
assert nosp(dir(X)) == ['a', 'b', 'c']
def test_dir_in_broken_locals(self):
- class C:
+ class C(object):
def __getitem__(self, item):
raise KeyError(item)
def keys(self):
@@ -100,7 +100,7 @@
assert g() == {'a':0, 'b':0, 'c':0}
def test_getattr(self):
- class a:
+ class a(object):
i = 5
assert getattr(a, 'i') == 5
raises(AttributeError, getattr, a, 'k')
@@ -282,7 +282,7 @@
def test_reversed_custom_objects(self):
"""make sure __reversed__ is called when defined"""
- class SomeClass:
+ class SomeClass(object):
def __reversed__(self):
return 42
obj = SomeClass()
@@ -297,7 +297,7 @@
assert cmp(u"abc", 12) != 0
def test_cmp_more(self):
- class C:
+ class C(object):
def __eq__(self, other):
return True
def __cmp__(self, other):
@@ -332,7 +332,7 @@
raises(TypeError,coerce, u'a' , 'a')
def test_return_None(self):
- class X: pass
+ class X(object): pass
x = X()
assert setattr(x, 'x', 11) == None
assert delattr(x, 'x') == None
@@ -343,7 +343,7 @@
assert divmod(15,10) ==(1,5)
def test_callable(self):
- class Call:
+ class Call(object):
def __call__(self, a):
return a+2
assert callable(Call()), (
@@ -351,10 +351,6 @@
assert callable(int), (
"Builtin function 'callable' misreads int")
class Call:
- try:
- __metaclass__ = _classobj
- except NameError: # not running on PyPy, assuming oldstyle implicitely
- pass
def __call__(self, a):
return a+2
assert callable(Call())
@@ -374,10 +370,7 @@
assert not callable(a), (
"Builtin function 'callable' tricked by instance-__call__")
class NoCall:
- try:
- __metaclass__ = _classobj
- except NameError: # not running on PyPy, assuming oldstyle implicitely
- pass
+ pass
assert not callable(NoCall())
def test_hash(self):
@@ -435,7 +428,7 @@
raises(TypeError, issubclass, int, (float, 6))
def test_staticmethod(self):
- class X:
+ class X(object):
def f(*args, **kwds): return args, kwds
f = staticmethod(f)
assert X.f() == ((), {})
@@ -444,7 +437,7 @@
assert X().f(42, x=43) == ((42,), {'x': 43})
def test_classmethod(self):
- class X:
+ class X(object):
def f(*args, **kwds): return args, kwds
f = classmethod(f)
class Y(X):
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_classobj.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_classobj.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_classobj.py Sat Jul 12 13:02:42 2008
@@ -1,8 +1,5 @@
class AppTestOldstyle(object):
- def setup_class(cls):
- from pypy.conftest import gettestobjspace
- cls.space = gettestobjspace(**{"objspace.std.oldstyle": True})
def test_simple(self):
class A:
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_descriptor.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_descriptor.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_descriptor.py Sat Jul 12 13:02:42 2008
@@ -3,7 +3,7 @@
class AppTestBuiltinApp:
def test_staticmethod(self):
- class C:
+ class C(object):
def f(a, b):
return a+b
f = staticmethod(f)
@@ -18,7 +18,7 @@
assert D.f("abc", "def") == "abcdef"
def test_classmethod(self):
- class C:
+ class C(object):
def f(cls, stuff):
return cls, stuff
f = classmethod(f)
@@ -189,7 +189,7 @@
assert C.__dict__["f"](p) == "B.f->C.f"
def test_super_errors(self):
- class C:
+ class C(object):
pass
class D(C):
pass
@@ -231,7 +231,7 @@
def test_property_docstring(self):
assert property.__doc__.startswith('property')
- class A:
+ class A(object):
pass
A.x = property(lambda x: x, lambda x, y: x, lambda x:x, 'xxx')
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_functional.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_functional.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_functional.py Sat Jul 12 13:02:42 2008
@@ -156,10 +156,10 @@
def test_all(self):
- class TestFailingBool:
+ class TestFailingBool(object):
def __nonzero__(self):
raise RuntimeError
- class TestFailingIter:
+ class TestFailingIter(object):
def __iter__(self):
raise RuntimeError
@@ -178,10 +178,10 @@
def test_any(self):
- class TestFailingBool:
+ class TestFailingBool(object):
def __nonzero__(self):
raise RuntimeError
- class TestFailingIter:
+ class TestFailingIter(object):
def __iter__(self):
raise RuntimeError
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_reduce.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_reduce.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_reduce.py Sat Jul 12 13:02:42 2008
@@ -14,7 +14,7 @@
assert reduce(lambda x, y: x-y, [2, 8], 10) == 0
def test_from_cpython(self):
- class SequenceClass:
+ class SequenceClass(object):
def __init__(self, n):
self.n = n
def __getitem__(self, i):
Modified: pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_vars.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_vars.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/__builtin__/test/test_vars.py Sat Jul 12 13:02:42 2008
@@ -9,7 +9,7 @@
raises(TypeError, vars, 0, 1)
def test_vars_correct_arguments(self):
- class a:
+ class a(object):
def __init__(self):
self.res = 42
assert vars(a) == a.__dict__
Modified: pypy/branch/always-oldstyle/pypy/module/operator/test/test_operator.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/module/operator/test/test_operator.py (original)
+++ pypy/branch/always-oldstyle/pypy/module/operator/test/test_operator.py Sat Jul 12 13:02:42 2008
@@ -6,7 +6,7 @@
def test_getters_are_not_regular_functions(self):
import operator
- class A:
+ class A(object):
getx = operator.attrgetter('x')
get3 = operator.itemgetter(3)
a = A()
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/objspace.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/objspace.py Sat Jul 12 13:02:42 2008
@@ -63,10 +63,6 @@
PACKAGE_PATH = 'objspace.std'
- def setoptions(self, **kwds):
- if "oldstyle" in kwds:
- self.config.objspace.std.oldstyle = kwds["oldstyle"]
-
def initialize(self):
"NOT_RPYTHON: only for initializing the space."
self._typecache = Cache()
@@ -314,10 +310,8 @@
self.make_builtins()
self.sys.setmodule(w_mod)
- # dummy old-style classes types
- self.w_classobj = W_TypeObject(self, 'classobj', [self.w_object], {})
- self.w_instance = W_TypeObject(self, 'instance', [self.w_object], {})
- self.setup_old_style_classes()
+ # the type of old-style classes
+ self.w_classobj = self.builtin.get('__metaclass__')
# fix up a problem where multimethods apparently don't
# like to define this at interp-level
@@ -336,9 +330,6 @@
""")
self.w_dict.__flags__ = old_flags
- if self.config.objspace.std.oldstyle:
- self.enable_old_style_classes_as_default_metaclass()
-
# final setup
self.setup_builtin_modules()
# Adding transparent proxy call
@@ -351,23 +342,6 @@
self.setattr(w___pypy__, self.wrap('get_tproxy_controller'),
self.wrap(app_proxy_controller))
- def enable_old_style_classes_as_default_metaclass(self):
- self.setitem(self.builtin.w_dict, self.wrap('__metaclass__'), self.w_classobj)
-
- def enable_new_style_classes_as_default_metaclass(self):
- space = self
- try:
- self.delitem(self.builtin.w_dict, self.wrap('__metaclass__'))
- except OperationError, e:
- if not e.match(space, space.w_KeyError):
- raise
-
- def setup_old_style_classes(self):
- """NOT_RPYTHON"""
- # sanity check that this approach is working and is not too late
- self.w_classobj = self.getattr(self.builtin, self.wrap('_classobj'))
- self.w_instance = self.getattr(self.builtin, self.wrap('_instance'))
-
def create_builtin_module(self, pyname, publicname):
"""NOT_RPYTHON
helper function which returns the wrapped module and its dict.
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_complexobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_complexobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_complexobject.py Sat Jul 12 13:02:42 2008
@@ -59,6 +59,8 @@
class AppTestAppComplexTest:
def setup_class(cls):
+ # XXX these tests probably copied directly from CPython
+ # please port them to pypy style :-/
cls.w_helper = cls.space.appexec([], """
():
import sys
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_dictobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_dictobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_dictobject.py Sat Jul 12 13:02:42 2008
@@ -314,7 +314,7 @@
assert str(d) == '{0: {...}}'
# Mutating while repr'ing
- class Machiavelli:
+ class Machiavelli(object):
def __repr__(self):
d.clear()
return "42"
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_floatobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_floatobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_floatobject.py Sat Jul 12 13:02:42 2008
@@ -91,7 +91,7 @@
assert 0.0 == round(22.22222, -2)
def test_special_float_method(self):
- class a:
+ class a(object):
def __float__(self):
self.ar = True
return None
@@ -99,7 +99,7 @@
raises(TypeError, float, inst)
assert inst.ar
- class b:
+ class b(object):
pass
raises((AttributeError, TypeError), float, b())
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_index.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_index.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_index.py Sat Jul 12 13:02:42 2008
@@ -3,7 +3,7 @@
class AppTest_IndexProtocol:
def setup_class(self):
- self.space = gettestobjspace(oldstyle=True)
+ self.space = gettestobjspace()
w_oldstyle = self.space.appexec([], """():
class oldstyle:
def __index__(self):
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_intobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_intobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_intobject.py Sat Jul 12 13:02:42 2008
@@ -386,7 +386,7 @@
assert (j(100) >> 2, type(j(100) >> 2)) == ( 25, int)
def test_special_int(self):
- class a:
+ class a(object):
def __int__(self):
self.ar = True
return None
@@ -394,12 +394,12 @@
raises(TypeError, int, inst)
assert inst.ar == True
- class b:
+ class b(object):
pass
raises((AttributeError,TypeError), int, b())
def test_special_long(self):
- class a:
+ class a(object):
def __long__(self):
self.ar = True
return None
@@ -407,7 +407,7 @@
raises(TypeError, long, inst)
assert inst.ar == True
- class b:
+ class b(object):
pass
raises((AttributeError,TypeError), long, b())
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_iterobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_iterobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_iterobject.py Sat Jul 12 13:02:42 2008
@@ -38,7 +38,7 @@
class AppTestW_IterObjectApp:
def test_user_iter(self):
- class C:
+ class C(object):
def next(self):
raise StopIteration
def __iter__(self):
@@ -46,13 +46,13 @@
assert list(C()) == []
def test_iter_getitem(self):
- class C:
+ class C(object):
def __getitem__(self, i):
return range(2)[i]
assert list(C()) == range(2)
def test_iter_fail_noseq(self):
- class C:
+ class C(object):
pass
raises(TypeError,
iter,
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_function.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_function.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_function.py Sat Jul 12 13:02:42 2008
@@ -50,7 +50,7 @@
def f(self):
return 3
- class A:
+ class A(object):
pass
fun = self.get_proxy(f)
@@ -81,18 +81,18 @@
assert f.__doc__ is None
def test_proxy_bind_method(self):
- class A:
+ class A(object):
pass
def f(self):
return 3
- class AA:
+ class AA(object):
pass
from __pypy__ import tproxy as proxy
a = A()
- class X:
+ class X(object):
def __init__(self, x):
self.x = x
def f(self, name, *args, **kwargs):
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_internals.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_internals.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_proxy_internals.py Sat Jul 12 13:02:42 2008
@@ -129,29 +129,3 @@
pass
t = tproxy(file, f)
-
-class DONTAppTestProxyType(AppProxy):
- def test_filetype(self):
- f = self.get_proxy(file)
- f("/tmp/sth", "w").write("aaa")
- assert open("/tmp/sth").read() == "aaa"
-
- def test_fileobject(self):
- f = open("/tmp/sth", "w")
- fp = self.get_proxy(f)
- fp.write("aaa")
- fp.close()
- assert open("/tmp/sth").read() == "aaa"
-
- def test_isinstance(self):
- class A:
- pass
-
- a = A()
- Ap = self.get_proxy(A)
- ap = self.get_proxy(a)
- assert isinstance(a, A)
- assert isinstance(a, Ap)
- assert isinstance(ap, A)
- assert isinstance(ap, Ap)
- assert type(a) is type(ap)
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_stringobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_stringobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_stringobject.py Sat Jul 12 13:02:42 2008
@@ -509,7 +509,7 @@
def test_unicode_join_endcase(self):
# This class inserts a Unicode object into its argument's natural
# iteration, in the 3rd position.
- class OhPhooey:
+ class OhPhooey(object):
def __init__(self, seq):
self.it = iter(seq)
self.i = 0
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_typeobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_typeobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_typeobject.py Sat Jul 12 13:02:42 2008
@@ -215,15 +215,9 @@
assert 0, "shouldn't be able to create inheritance cycles"
# let's throw a classic class into the mix:
- try:
- class Classic:
- __metaclass__ = _classobj
- def meth2(self):
- return 3
- except NameError:
- class Classic:
- def meth2(self):
- return 3
+ class Classic:
+ def meth2(self):
+ return 3
D.__bases__ = (C, Classic)
@@ -369,27 +363,14 @@
assert type(HasInnerMetaclass) == HasInnerMetaclass.__metaclass__
def test_implicit_metaclass(self):
- global __metaclass__
- try:
- old_metaclass = __metaclass__
- has_old_metaclass = True
- except NameError:
- has_old_metaclass = False
-
class __metaclass__(type):
pass
- class HasImplicitMetaclass:
- pass
-
- try:
- assert type(HasImplicitMetaclass) == __metaclass__
- finally:
- if has_old_metaclass:
- __metaclass__ = old_metaclass
- else:
- del __metaclass__
+ g = {'__metaclass__': __metaclass__}
+ exec "class HasImplicitMetaclass: pass\n" in g
+ HasImplicitMetaclass = g['HasImplicitMetaclass']
+ assert type(HasImplicitMetaclass) == __metaclass__
def test_mro(self):
class A_mro(object):
@@ -410,8 +391,8 @@
assert getattr(B_mro(), 'a', None) == None
def test_abstract_mro(self):
- class A1:
- __metaclass__ = _classobj
+ class A1: # old-style class
+ pass
class B1(A1):
pass
class C1(A1):
@@ -595,7 +576,7 @@
def test_only_classic_bases_fails(self):
class C:
- __metaclass__ = _classobj
+ pass
raises(TypeError, type, 'D', (C,), {})
def test_set___class__(self):
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_unicodeobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_unicodeobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_unicodeobject.py Sat Jul 12 13:02:42 2008
@@ -269,17 +269,10 @@
assert U(u'test').__class__ is U
def test_call_unicode(self):
- skip("does not work")
- class X:
+ class X(object):
def __unicode__(self):
return u'x'
-
- try:
- unicode(X(), 'ascii')
- except TypeError, t:
- assert 'need string or buffer' in str(t)
- else:
- raise Exception("DID NOT RAISE")
+ raises(TypeError, unicode, X(), 'ascii')
def test_startswith(self):
assert u'ab'.startswith(u'ab') is True
Modified: pypy/branch/always-oldstyle/pypy/objspace/std/test/test_userobject.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/std/test/test_userobject.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/std/test/test_userobject.py Sat Jul 12 13:02:42 2008
@@ -8,21 +8,21 @@
cls.space = conftest.gettestobjspace(**cls.OPTIONS)
def test_emptyclass(self):
- class empty: pass
+ class empty(object): pass
inst = empty()
assert isinstance(inst, empty)
- inst.attr=23
- assert inst.attr ==23
+ inst.attr = 23
+ assert inst.attr == 23
def test_method(self):
- class A:
+ class A(object):
def f(self, v):
return v*42
a = A()
assert a.f('?') == '??????????????????????????????????????????'
def test_unboundmethod(self):
- class A:
+ class A(object):
def f(self, v):
return v*17
a = A()
@@ -46,7 +46,7 @@
assert len(result) ==3
def test_subsubclass(self):
- class base:
+ class base(object):
baseattr = 12
class derived(base):
derivedattr = 34
@@ -56,7 +56,7 @@
assert inst.derivedattr ==34
def test_descr_get(self):
- class C:
+ class C(object):
class desc(object):
def __get__(self, ob, cls=None):
return 42
@@ -86,21 +86,21 @@
assert c.wibble == 22
def test_class_setattr(self):
- class C:
+ class C(object):
pass
C.a = 1
assert hasattr(C, 'a')
assert C.a == 1
def test_add(self):
- class C:
+ class C(object):
def __add__(self, other):
return self, other
c1 = C()
assert c1+3 == (c1, 3)
def test_call(self):
- class C:
+ class C(object):
def __call__(self, *args):
return args
c1 = C()
@@ -118,7 +118,7 @@
assert c1.a == '->a'
def test_getattr(self):
- class C:
+ class C(object):
def __getattr__(self, name):
return '->' + name
c1 = C()
@@ -207,12 +207,6 @@
s = repr(Foo())
assert s.startswith('<a.b.c.Foo object at ')
- def test_obscure(self):
- skip("Too obscure")
- class Foo(object):
- locals()[42] = 98
- # assert did not crash
-
class AppTestWithMultiMethodVersion2(AppTestUserObject):
OPTIONS = {} # for test_builtinshortcut.py
Modified: pypy/branch/always-oldstyle/pypy/objspace/test/test_descriptor.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/objspace/test/test_descriptor.py (original)
+++ pypy/branch/always-oldstyle/pypy/objspace/test/test_descriptor.py Sat Jul 12 13:02:42 2008
@@ -32,7 +32,7 @@
raises(AttributeError, X.v.__delete__, x)
def test_special_methods_returning_strings(self):
- class A:
+ class A(object):
seen = []
def __str__(self):
self.seen.append(1)
@@ -50,24 +50,25 @@
raises(TypeError, hex, inst)
assert A.seen == [1,2,3,4]
-class TestDesciprtorOnStd:
def test_hash(self):
- class A:
+ class A(object):
pass
hash(A())
- class B:
+
+ # as in CPython, for new-style classes we don't check if
+ # __eq__ is overridden without __hash__ being overridden,
+ # and so hash(B()) always just works (but gives a slightly
+ # useless result).
+ class B(object):
def __eq__(self, other): pass
- raises(TypeError, hash, B())
- class C:
- def __cmp__(self, other): pass
- raises(TypeError, "hash(C())")
+ hash(B())
- #class D:
- # def __hash__(self):
- # return 23L
- #raises(TypeError, hash, D())
+ # same as above for __cmp__
+ class C(object):
+ def __cmp__(self, other): pass
+ hash(C())
- class E:
+ class E(object):
def __hash__(self):
return "something"
raises(TypeError, hash, E())
Modified: pypy/branch/always-oldstyle/pypy/translator/goal/app_main.py
==============================================================================
--- pypy/branch/always-oldstyle/pypy/translator/goal/app_main.py (original)
+++ pypy/branch/always-oldstyle/pypy/translator/goal/app_main.py Sat Jul 12 13:02:42 2008
@@ -10,8 +10,6 @@
-u unbuffered binary stdout and stderr
-h, --help show this help message and exit
-m library module to be run as a script (terminates option list)
- -k, --oldstyle use old-style classes instead of newstyle classes
- everywhere %(oldstyle)s
--version print the PyPy version
--info print translation information about this PyPy executable
"""
@@ -123,10 +121,7 @@
def print_help():
print 'usage: %s [options]' % (sys.executable,)
- details = {'oldstyle': ''}
- if sys.pypy_translation_info['objspace.std.oldstyle']:
- details['oldstyle'] = '[default]'
- print __doc__ % details
+ print __doc__
def print_error(msg):
print >> sys.stderr, msg
@@ -221,7 +216,6 @@
i = 0
run_module = False
run_stdin = False
- oldstyle_classes = False
unbuffered = False
while i < len(argv):
arg = argv[i]
@@ -260,8 +254,6 @@
return 2
run_module = True
break
- elif arg in ('-k', '--oldstyle'):
- oldstyle_classes = True
elif arg == '--':
i += 1
break # terminates option list
@@ -287,10 +279,6 @@
mainmodule = type(sys)('__main__')
sys.modules['__main__'] = mainmodule
- if oldstyle_classes:
- import __builtin__
- __builtin__.__metaclass__ = __builtin__._classobj
-
if import_site:
try:
import site
More information about the Pypy-commit
mailing list