Fix corner case for Random.choice() and add tests.
diff --git a/Lib/random.py b/Lib/random.py
index 88b8f6d..0886562 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -239,7 +239,11 @@
 
     def choice(self, seq):
         """Choose a random element from a non-empty sequence."""
-        return seq[self._randbelow(len(seq))]   # raises IndexError if seq is empty
+        try:
+            i = self._randbelow(len(seq))
+        except ValueError:
+            raise IndexError('Cannot choose from an empty sequence')
+        return seq[i]
 
     def shuffle(self, x, random=None, int=int):
         """x, random=random.random -> shuffle list x in place; return None.