summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/rational.py2
-rwxr-xr-xLib/test/regrtest.py2
-rw-r--r--Lib/test/test_builtin.py52
-rw-r--r--Lib/test/test_mailbox.py1
-rw-r--r--Lib/test/test_socketserver.py15
-rw-r--r--Lib/test/test_sys.py14
6 files changed, 75 insertions, 11 deletions
diff --git a/Lib/rational.py b/Lib/rational.py
index e2fed23..6002964 100755
--- a/Lib/rational.py
+++ b/Lib/rational.py
@@ -406,8 +406,6 @@ class Rational(RationalAbc):
else:
return a.numerator // a.denominator
- __int__ = __trunc__
-
def __floor__(a):
"""Will be math.floor(a) in 3.0."""
return a.numerator // a.denominator
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 5934e6b..9b6f14a 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -753,7 +753,7 @@ def dash_R_cleanup(fs, ps, pic, abcs):
sys.path_importer_cache.update(pic)
# clear type cache
- sys._cleartypecache()
+ sys._clear_type_cache()
# Clear ABC registries, restoring previously saved ABC registries.
for abc in [getattr(_abcoll, a) for a in _abcoll.__all__]:
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index cc31e93..1b9edc0 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -861,6 +861,14 @@ class BuiltinTest(unittest.TestCase):
def test_intconversion(self):
# Test __int__()
+ class ClassicMissingMethods:
+ pass
+ self.assertRaises(TypeError, int, ClassicMissingMethods())
+
+ class MissingMethods(object):
+ pass
+ self.assertRaises(TypeError, int, MissingMethods())
+
class Foo0:
def __int__(self):
return 42
@@ -892,6 +900,49 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(int(Foo4()), 42)
self.assertRaises(TypeError, int, Foo5())
+ class Classic:
+ pass
+ for base in (object, Classic):
+ class IntOverridesTrunc(base):
+ def __int__(self):
+ return 42
+ def __trunc__(self):
+ return -12
+ self.assertEqual(int(IntOverridesTrunc()), 42)
+
+ class JustTrunc(base):
+ def __trunc__(self):
+ return 42
+ self.assertEqual(int(JustTrunc()), 42)
+
+ for trunc_result_base in (object, Classic):
+ class Integral(trunc_result_base):
+ def __int__(self):
+ return 42
+
+ class TruncReturnsNonInt(base):
+ def __trunc__(self):
+ return Integral()
+ self.assertEqual(int(TruncReturnsNonInt()), 42)
+
+ class NonIntegral(trunc_result_base):
+ def __trunc__(self):
+ # Check that we avoid infinite recursion.
+ return NonIntegral()
+
+ class TruncReturnsNonIntegral(base):
+ def __trunc__(self):
+ return NonIntegral()
+ try:
+ int(TruncReturnsNonIntegral())
+ except TypeError as e:
+ self.assertEquals(str(e),
+ "__trunc__ returned non-Integral"
+ " (type NonIntegral)")
+ else:
+ self.fail("Failed to raise TypeError with %s" %
+ ((base, trunc_result_base),))
+
def test_iter(self):
self.assertRaises(TypeError, iter)
self.assertRaises(TypeError, iter, 42, 42)
@@ -1095,7 +1146,6 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(int('2br45qc', 35), 4294967297)
self.assertEqual(int('1z141z5', 36), 4294967297)
-
def test_longconversion(self):
# Test __long__()
class Foo0:
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 918116a..925f878 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -517,6 +517,7 @@ class TestMaildir(TestMailbox):
class FakeMessage(mailbox.MaildirMessage):
pass
box = mailbox.Maildir(self._path, factory=FakeMessage)
+ box.colon = self._box.colon
msg2 = box.get_message(key)
self.assert_(isinstance(msg2, FakeMessage))
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 6a65b6c..0fccdd9 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -51,13 +51,14 @@ class MyDatagramHandler(MyMixinHandler,
SocketServer.DatagramRequestHandler):
pass
-class ForkingUnixStreamServer(SocketServer.ForkingMixIn,
- SocketServer.UnixStreamServer):
- pass
-
-class ForkingUnixDatagramServer(SocketServer.ForkingMixIn,
- SocketServer.UnixDatagramServer):
- pass
+if HAVE_UNIX_SOCKETS:
+ class ForkingUnixStreamServer(SocketServer.ForkingMixIn,
+ SocketServer.UnixStreamServer):
+ pass
+
+ class ForkingUnixDatagramServer(SocketServer.ForkingMixIn,
+ SocketServer.UnixDatagramServer):
+ pass
class MyMixinServer:
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 8979889..11251b7 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -330,6 +330,20 @@ class SysModuleTest(unittest.TestCase):
self.assertEqual(type(getattr(sys.flags, attr)), int, attr)
self.assert_(repr(sys.flags))
+ def test_clear_type_cache(self):
+ sys._clear_type_cache()
+
+ def test_compact_freelists(self):
+ sys._compact_freelists()
+ r = sys._compact_freelists()
+ # freed blocks shouldn't change
+ self.assertEqual(r[0][2], 0)
+ # fill freelists
+ floats = [float(i) for i in range(12000)]
+ del floats
+ # should free more than 200 blocks
+ r = sys._compact_freelists()
+ self.assert_(r[0][2] > 200, r[0][2])
def test_main():
test.test_support.run_unittest(SysModuleTest)