[pypy-commit] pypy default: merge heads

arigo pypy.commits at gmail.com
Fri Feb 24 02:42:01 EST 2017


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r90337:6d6e4f94cf81
Date: 2017-02-24 08:41 +0100
http://bitbucket.org/pypy/pypy/changeset/6d6e4f94cf81/

Log:	merge heads

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -74,7 +74,7 @@
 ^rpython/doc/_build/.*$
 ^compiled
 ^.git/
-^.hypothesis/
+.hypothesis/
 ^release/
 ^rpython/_cache$
 
diff --git a/extra_tests/README.txt b/extra_tests/README.txt
new file mode 100644
--- /dev/null
+++ b/extra_tests/README.txt
@@ -0,0 +1,5 @@
+The tests in this directory are a complement to lib-python/3/test/.
+
+They are meant to run on top of a compiled pypy3 or CPython3.5 in an
+environment containing at least pytest and hypothesis, using a command like
+'pytest extra_tests/'.
diff --git a/extra_tests/pytest.ini b/extra_tests/pytest.ini
new file mode 100644
diff --git a/extra_tests/test_unicode.py b/extra_tests/test_unicode.py
new file mode 100644
--- /dev/null
+++ b/extra_tests/test_unicode.py
@@ -0,0 +1,34 @@
+import pytest
+from hypothesis import strategies as st
+from hypothesis import given, settings, example
+
+from unicodedata import normalize
+
+# For every (n1, n2, n3) triple, applying n1 then n2 must be the same
+# as applying n3.
+# Reference: http://unicode.org/reports/tr15/#Design_Goals
+compositions = [
+    ('NFC', 'NFC', 'NFC'),
+    ('NFC', 'NFD', 'NFD'),
+    ('NFC', 'NFKC', 'NFKC'),
+    ('NFC', 'NFKD', 'NFKD'),
+    ('NFD', 'NFC', 'NFC'),
+    ('NFD', 'NFD', 'NFD'),
+    ('NFD', 'NFKC', 'NFKC'),
+    ('NFD', 'NFKD', 'NFKD'),
+    ('NFKC', 'NFC', 'NFKC'),
+    ('NFKC', 'NFD', 'NFKD'),
+    ('NFKC', 'NFKC', 'NFKC'),
+    ('NFKC', 'NFKD', 'NFKD'),
+    ('NFKD', 'NFC', 'NFKC'),
+    ('NFKD', 'NFD', 'NFKD'),
+    ('NFKD', 'NFKC', 'NFKC'),
+    ('NFKD', 'NFKD', 'NFKD'),
+]
+
+ at pytest.mark.parametrize('norm1, norm2, norm3', compositions)
+ at settings(max_examples=1000)
+ at example(s=u'---\uafb8\u11a7---')  # issue 2289
+ at given(s=st.text())
+def test_composition(s, norm1, norm2, norm3):
+    assert normalize(norm2, normalize(norm1, s)) == normalize(norm3, s)


More information about the pypy-commit mailing list