changeset: 83447:678564fc0962 branch: 3.3 parent: 83445:f5d31084fbbd user: Ezio Melotti date: Fri Apr 19 05:45:27 2013 +0300 files: Lib/test/test_random.py Misc/NEWS description: #17789: test_random now works with unittest test discovery. Patch by Zachary Ware. diff -r f5d31084fbbd -r 678564fc0962 Lib/test/test_random.py --- a/Lib/test/test_random.py Fri Apr 19 05:38:18 2013 +0300 +++ b/Lib/test/test_random.py Fri Apr 19 05:45:27 2013 +0300 @@ -8,7 +8,7 @@ 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 @@ 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 @@ 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 @@ 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() diff -r f5d31084fbbd -r 678564fc0962 Misc/NEWS --- a/Misc/NEWS Fri Apr 19 05:38:18 2013 +0300 +++ b/Misc/NEWS Fri Apr 19 05:45:27 2013 +0300 @@ -120,6 +120,9 @@ - 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.