summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Jerdonek <chris.jerdonek@gmail.com>2012-12-27 20:53:29 (GMT)
committerChris Jerdonek <chris.jerdonek@gmail.com>2012-12-27 20:53:29 (GMT)
commit6f70fe804690bbfea9caefe1ba01029aa1abf0eb (patch)
tree8a6294137e99662ee92d634b0a2d9eb75ebc1c26
parent33e05e7905c00f601e4d1fea9ec0df0b3b9cb39c (diff)
downloadcpython-6f70fe804690bbfea9caefe1ba01029aa1abf0eb.zip
cpython-6f70fe804690bbfea9caefe1ba01029aa1abf0eb.tar.gz
cpython-6f70fe804690bbfea9caefe1ba01029aa1abf0eb.tar.bz2
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.
-rw-r--r--Lib/test/test_int.py29
-rw-r--r--Lib/test/test_long.py6
2 files changed, 23 insertions, 12 deletions
diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py
index 8862701..045ef7c 100644
--- a/Lib/test/test_int.py
+++ b/Lib/test/test_int.py
@@ -45,7 +45,25 @@ if have_unicode:
(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 @@ class IntTestCases(unittest.TestCase):
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
index 58cfc3a..f0847e7 100644
--- 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 @@ if test_support.have_unicode:
(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