#17789: test_random now works with unittest test discovery. Patch by Zachary Ware.

This commit is contained in:
Ezio Melotti 2013-04-19 05:45:27 +03:00
parent aaa5d1c582
commit 3e4a98bd1c
2 changed files with 15 additions and 27 deletions

View File

@ -8,7 +8,7 @@ import warnings
from math import log, exp, pi, fsum, sin
from test import support
class TestBasicOps(unittest.TestCase):
class TestBasicOps:
# Superclass with tests common to all generators.
# Subclasses must arrange for self.gen to retrieve the Random instance
# to be tested.
@ -142,7 +142,15 @@ class TestBasicOps(unittest.TestCase):
k = sum(randrange(6755399441055744) % 3 == 2 for i in range(n))
self.assertTrue(0.30 < k/n < .37, (k/n))
class SystemRandom_TestBasicOps(TestBasicOps):
try:
random.SystemRandom().random()
except NotImplementedError:
SystemRandom_available = False
else:
SystemRandom_available = True
@unittest.skipUnless(SystemRandom_available, "random.SystemRandom not available")
class SystemRandom_TestBasicOps(TestBasicOps, unittest.TestCase):
gen = random.SystemRandom()
def test_autoseed(self):
@ -239,7 +247,7 @@ class SystemRandom_TestBasicOps(TestBasicOps):
self.assertTrue(2**k > n > 2**(k-1)) # note the stronger assertion
class MersenneTwister_TestBasicOps(TestBasicOps):
class MersenneTwister_TestBasicOps(TestBasicOps, unittest.TestCase):
gen = random.Random()
def test_guaranteed_stable(self):
@ -542,28 +550,5 @@ class TestModule(unittest.TestCase):
Subclass(newarg=1)
def test_main(verbose=None):
testclasses = [MersenneTwister_TestBasicOps,
TestDistributions,
TestModule]
try:
random.SystemRandom().random()
except NotImplementedError:
pass
else:
testclasses.append(SystemRandom_TestBasicOps)
support.run_unittest(*testclasses)
# verify reference counting
import sys
if verbose and hasattr(sys, "gettotalrefcount"):
counts = [None] * 5
for i in range(len(counts)):
support.run_unittest(*testclasses)
counts[i] = sys.gettotalrefcount()
print(counts)
if __name__ == "__main__":
test_main(verbose=True)
unittest.main()

View File

@ -120,6 +120,9 @@ Tests
- Issue #12820: add tests for the xml.dom.minicompat module.
Patch by John Chandler and Phil Connell.
- Issue #17789: test_random now works with unittest test discovery.
Patch by Zachary Ware.
- Issue #17779: test_osx_env now works with unittest test discovery.
Patch by Zachary Ware.