[Python-checkins] r63749 - python/branches/okkoto-sizeof/Lib/test/test_sys.py

robert.schuppenies python-checkins at python.org
Tue May 27 18:29:49 CEST 2008


Author: robert.schuppenies
Date: Tue May 27 18:29:49 2008
New Revision: 63749

Log:
adapted tests to reflect current problems in calling __sizeof__ for class object


Modified:
   python/branches/okkoto-sizeof/Lib/test/test_sys.py

Modified: python/branches/okkoto-sizeof/Lib/test/test_sys.py
==============================================================================
--- python/branches/okkoto-sizeof/Lib/test/test_sys.py	(original)
+++ python/branches/okkoto-sizeof/Lib/test/test_sys.py	Tue May 27 18:29:49 2008
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 import unittest, test.test_support
-import sys, cStringIO
+import sys, cStringIO, inspect
 
 class SysModuleTest(unittest.TestCase):
 
@@ -388,7 +388,6 @@
 
 class SizeofTest(unittest.TestCase):
 
-
     def setUp(self):
         import struct
         self.i = len(struct.pack('i', 0))
@@ -407,7 +406,10 @@
 
     def check_sizeof(self, o, size, ):
         size += self.headersize
-        result = sys.getsizeof(o)
+        if not inspect.isclass(o):
+            result = sys.getsizeof(o)
+        else:
+            result = o.__sizeof__(o)
         msg = 'wrong size for ' + str(type(o)) + ': '+\
               str(result) + ' != ' + str(size)
         self.assertEqual(result, size, msg)
@@ -450,11 +452,11 @@
         class clazz():
             def method():
                 pass
-#        self.check_sizeof(clazz, 6*p)
+ #       self.check_sizeof(clazz, 6*p)
         # instance
 #        self.check_sizeof(clazz(), 3*p)
         # method
-#        self.check_sizeof(clazz().method, 4*p)
+        self.check_sizeof(clazz().method, 4*p)
         # code
         self.check_sizeof(get_cell().func_code, self.align(4*i) + 8*p +\
                             self.align(i) + 2*p)
@@ -505,6 +507,14 @@
         # string
         self.check_sizeof('', l + self.align(i + 1))
         self.check_sizeof('abc', l + self.align(i + 1) + 3)
+        # long
+        self.check_sizeof(0L, + self.align(2))
+        self.check_sizeof(1L, + self.align(2))
+        self.check_sizeof(-1L, + self.align(2))
+        self.check_sizeof(32768L, + self.align(2) + 2)
+        self.check_sizeof(32768L*32768L-1, + self.align(2) + 2)
+        self.check_sizeof(32768L*32768L, + self.align(2) + 4)
+
 
     def test_special_types(self):
         i = self.i


More information about the Python-checkins mailing list