bpo-33203: Ensure random.choice always raises IndexError on empty sequence (GH-6338) (GH-6387)
(cherry picked from commit 091e95e9004b794280ab35becec2c3e30dd5e96e)
Co-authored-by: Wolfgang Maier <wolfgang.maier@biologie.uni-freiburg.de>
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index 468c4a4..eee245d 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -651,7 +651,10 @@
# Population range too large (n >= maxsize)
self.gen._randbelow(maxsize+1, maxsize = maxsize)
self.gen._randbelow(5640, maxsize = maxsize)
-
+ # issue 33203: test that _randbelow raises ValueError on
+ # n == 0 also in its getrandbits-independent branch.
+ with self.assertRaises(ValueError):
+ self.gen._randbelow(0, maxsize=maxsize)
# This might be going too far to test a single line, but because of our
# noble aim of achieving 100% test coverage we need to write a case in
# which the following line in Random._randbelow() gets executed: