]> granicus.if.org Git - python/commitdiff
Restore the test for 'object' that I removed when object was
authorGuido van Rossum <guido@python.org>
Thu, 9 Aug 2001 19:45:21 +0000 (19:45 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 9 Aug 2001 19:45:21 +0000 (19:45 +0000)
uninstantiable.  All is well now.

Lib/test/test_descr.py

index 5b5f1370fb9f4353c494cbd900a9091f7b109c11..92f79d55985812ef009926adc931456de8aafa51 100644 (file)
@@ -472,6 +472,29 @@ def diamond():
     verify(G().boo() == "C")
     verify(G.__mro__ == (G, E, D, C, B, A, object))
 
+def objects():
+    if verbose: print "Testing object class..."
+    a = object()
+    verify(a.__class__ == object == type(a))
+    b = object()
+    verify(a is not b)
+    verify(not hasattr(a, "foo"))
+    try:
+        a.foo = 12
+    except TypeError:
+        pass
+    else:
+        verify(0, "object() should not allow setting a foo attribute")
+    verify(not hasattr(object(), "__dict__"))
+
+    class Cdict(object):
+        pass
+    x = Cdict()
+    verify(x.__dict__ is None)
+    x.foo = 1
+    verify(x.foo == 1)
+    verify(x.__dict__ == {'foo': 1})
+
 def slots():
     if verbose: print "Testing __slots__..."
     class C0(object):
@@ -789,6 +812,7 @@ def all():
     pymods()
     multi()
     diamond()
+    objects()
     slots()
     dynamics()
     errors()