Commit 6f70fe80 authored by Chris Jerdonek's avatar Chris Jerdonek

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.
parent 33e05e79
...@@ -45,7 +45,25 @@ if have_unicode: ...@@ -45,7 +45,25 @@ if have_unicode:
(unichr(0x200), ValueError), (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): def test_basic(self):
self.assertEqual(int(314), 314) self.assertEqual(int(314), 314)
...@@ -316,15 +334,6 @@ class IntTestCases(unittest.TestCase): ...@@ -316,15 +334,6 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int(float(2**54+10)), 2**54+8) self.assertEqual(int(float(2**54+10)), 2**54+8)
self.assertEqual(int(float(2**54+11)), 2**54+12) 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): def test_valid_non_numeric_input_types_for_x(self):
# Test possible valid non-numeric types for x, including subclasses # Test possible valid non-numeric types for x, including subclasses
# of the allowed built-in types. # of the allowed built-in types.
......
import unittest import unittest
from test import test_support
import sys import sys
import random import random
import math import math
from test import test_int, test_support
# Used for lazy formatting of failure messages # Used for lazy formatting of failure messages
class Frm(object): class Frm(object):
def __init__(self, format, *args): def __init__(self, format, *args):
...@@ -78,8 +79,9 @@ if test_support.have_unicode: ...@@ -78,8 +79,9 @@ if test_support.have_unicode:
(unichr(0x200), ValueError), (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). # Get quasi-random long consisting of ndigits digits (in base BASE).
# quasi == the most-significant digit will not be 0, and the number # quasi == the most-significant digit will not be 0, and the number
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment