[Python-checkins] cpython (2.7): Issue #16790: add some of the recent issue #16045 int tests to test_long.

chris.jerdonek python-checkins at python.org
Thu Dec 27 21:54:40 CET 2012


http://hg.python.org/cpython/rev/eb1734e579f7
changeset:   81102:eb1734e579f7
branch:      2.7
user:        Chris Jerdonek <chris.jerdonek at gmail.com>
date:        Thu Dec 27 12:53:29 2012 -0800
summary:
  Issue #16790: add some of the recent issue #16045 int tests to test_long.

This patch also provides a simple way to share tests going forward
between test_int and test_long.

files:
  Lib/test/test_int.py  |  29 +++++++++++++++++++----------
  Lib/test/test_long.py |   6 ++++--
  2 files changed, 23 insertions(+), 12 deletions(-)


diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py
--- a/Lib/test/test_int.py
+++ b/Lib/test/test_int.py
@@ -45,7 +45,25 @@
         (unichr(0x200), ValueError),
 ]
 
-class IntTestCases(unittest.TestCase):
+class IntLongCommonTests(object):
+
+    """Mixin of test cases to share between both test_int and test_long."""
+
+    # Change to int or long in the TestCase subclass.
+    ntype = None
+
+    def test_no_args(self):
+        self.assertEqual(self.ntype(), 0)
+
+    def test_keyword_args(self):
+        # Test invoking constructor using keyword arguments.
+        self.assertEqual(self.ntype(x=1.2), 1)
+        self.assertEqual(self.ntype('100', base=2), 4)
+        self.assertEqual(self.ntype(x='100', base=2), 4)
+
+class IntTestCases(IntLongCommonTests, unittest.TestCase):
+
+    ntype = int
 
     def test_basic(self):
         self.assertEqual(int(314), 314)
@@ -316,15 +334,6 @@
         self.assertEqual(int(float(2**54+10)), 2**54+8)
         self.assertEqual(int(float(2**54+11)), 2**54+12)
 
-    def test_no_args(self):
-        self.assertEquals(int(), 0)
-
-    def test_keyword_args(self):
-        # Test invoking int() using keyword arguments.
-        self.assertEquals(int(x=1.2), 1)
-        self.assertEquals(int('100', base=2), 4)
-        self.assertEquals(int(x='100', base=2), 4)
-
     def test_valid_non_numeric_input_types_for_x(self):
         # Test possible valid non-numeric types for x, including subclasses
         # of the allowed built-in types.
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py
--- a/Lib/test/test_long.py
+++ b/Lib/test/test_long.py
@@ -1,10 +1,11 @@
 import unittest
-from test import test_support
 import sys
 
 import random
 import math
 
+from test import test_int, test_support
+
 # Used for lazy formatting of failure messages
 class Frm(object):
     def __init__(self, format, *args):
@@ -78,8 +79,9 @@
         (unichr(0x200), ValueError),
 ]
 
+class LongTest(test_int.IntLongCommonTests, unittest.TestCase):
 
-class LongTest(unittest.TestCase):
+    ntype = long
 
     # Get quasi-random long consisting of ndigits digits (in base BASE).
     # quasi == the most-significant digit will not be 0, and the number

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list