Author: Jeremy Thurgood <fir...@gmail.com>
Branch: 
Changeset: r83013:bb73b1e0ef9f
Date: 2016-03-13 18:57 +0200
http://bitbucket.org/pypy/pypy/changeset/bb73b1e0ef9f/

Log:    Hypothesis test for rlib.runicode.

diff --git a/rpython/rlib/test/test_runicode.py 
b/rpython/rlib/test/test_runicode.py
--- a/rpython/rlib/test/test_runicode.py
+++ b/rpython/rlib/test/test_runicode.py
@@ -4,6 +4,8 @@
 import sys, random
 from rpython.rlib import runicode
 
+from hypothesis import given, settings, strategies
+
 
 def test_unichr():
     assert runicode.UNICHR(0xffff) == u'\uffff'
@@ -172,6 +174,17 @@
                              "utf-32 utf-32-be utf-32-le").split():
                 self.checkdecode(uni, encoding)
 
+    # Same as above, but uses Hypothesis to generate non-surrogate unicode
+    # characters.
+    @settings(max_examples=10000)
+    @given(strategies.characters(blacklist_categories=["Cs"]))
+    def test_random_hypothesis(self, uni):
+        if sys.version >= "2.7":
+            self.checkdecode(uni, "utf-7")
+        for encoding in ("utf-8 utf-16 utf-16-be utf-16-le "
+                         "utf-32 utf-32-be utf-32-le").split():
+            self.checkdecode(uni, encoding)
+
     def test_maxunicode(self):
         uni = unichr(sys.maxunicode)
         if sys.version >= "2.7":
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to