summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_random.py
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-04-19 02:45:27 (GMT)
committerEzio Melotti <ezio.melotti@gmail.com>2013-04-19 02:45:27 (GMT)
commit3e4a98bd1c93f66abf41561b558d81c0fbd02b2e (patch)
treec6abb9e2c89ddcf24dd9f7daadbb350b83bc7abd /Lib/test/test_random.py
parentaaa5d1c5821b67dd9e3d33011d345b8839793254 (diff)
downloadcpython-3e4a98bd1c93f66abf41561b558d81c0fbd02b2e.zip
cpython-3e4a98bd1c93f66abf41561b558d81c0fbd02b2e.tar.gz
cpython-3e4a98bd1c93f66abf41561b558d81c0fbd02b2e.tar.bz2
#17789: test_random now works with unittest test discovery. Patch by Zachary Ware.
Diffstat (limited to 'Lib/test/test_random.py')
-rw-r--r--Lib/test/test_random.py39
1 files changed, 12 insertions, 27 deletions
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index c3ab7d2..facddb1 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -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()