diff options
author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-12-27 20:53:29 (GMT) |
---|---|---|
committer | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-12-27 20:53:29 (GMT) |
commit | 6f70fe804690bbfea9caefe1ba01029aa1abf0eb (patch) | |
tree | 8a6294137e99662ee92d634b0a2d9eb75ebc1c26 | |
parent | 33e05e7905c00f601e4d1fea9ec0df0b3b9cb39c (diff) | |
download | cpython-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.py | 29 | ||||
-rw-r--r-- | 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 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 |