gnu: python-parse: Fix failing test.
* gnu/packages/python.scm (python-parse)[origin]: Add patch. * gnu/packages/patches/python-parse-too-many-fields.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
parent
d18c69aa2a
commit
aa6c09ed71
|
@ -793,6 +793,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python-file-double-encoding-bug.patch \
|
%D%/packages/patches/python-file-double-encoding-bug.patch \
|
||||||
%D%/packages/patches/python-fix-tests.patch \
|
%D%/packages/patches/python-fix-tests.patch \
|
||||||
%D%/packages/patches/python-ipython-inputhook-ctype.patch \
|
%D%/packages/patches/python-ipython-inputhook-ctype.patch \
|
||||||
|
%D%/packages/patches/python-python-parse-too-many-fields.patch \
|
||||||
%D%/packages/patches/python-rarfile-fix-tests.patch \
|
%D%/packages/patches/python-rarfile-fix-tests.patch \
|
||||||
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
|
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
|
||||||
%D%/packages/patches/python-statsmodels-fix-tests.patch \
|
%D%/packages/patches/python-statsmodels-fix-tests.patch \
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
From 32f15cfefb7c7b6476360ac65cba807aa3dfccfa Mon Sep 17 00:00:00 2001
|
||||||
|
From: David King <dking@redhat.com>
|
||||||
|
Date: Mon, 14 Dec 2015 09:58:19 +0000
|
||||||
|
Subject: [PATCH] Fix test_too_many_fields with Python 3.5
|
||||||
|
|
||||||
|
taken from https://github.com/r1chardj0n3s/parse/pull/34
|
||||||
|
|
||||||
|
Python versions before 3.5 had a limit of 100 groups in regular
|
||||||
|
expressions. This limit was removed during 3.5 development:
|
||||||
|
|
||||||
|
http://bugs.python.org/issue22437
|
||||||
|
https://hg.python.org/cpython/rev/0b85ea4bd1af
|
||||||
|
|
||||||
|
The test_too_many_fields test asserts that the limit exists by
|
||||||
|
attempting to parse a string with 15 fields, which triggers the 100
|
||||||
|
named groups limit.
|
||||||
|
|
||||||
|
Adjust the test so that if first checks to see whether the limit of 100
|
||||||
|
named groups exists, and only assert that parsing 15 fields fails if
|
||||||
|
that is the case.
|
||||||
|
---
|
||||||
|
test_parse.py | 10 ++++++++--
|
||||||
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test_parse.py b/test_parse.py
|
||||||
|
index c524349..1d50568 100755
|
||||||
|
--- a/test_parse.py
|
||||||
|
+++ b/test_parse.py
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
from datetime import datetime, time
|
||||||
|
+import re
|
||||||
|
|
||||||
|
import parse
|
||||||
|
|
||||||
|
@@ -624,8 +625,13 @@ def test_mixed_type_variant(self):
|
||||||
|
self.assertEqual(r.fixed[21], 'spam')
|
||||||
|
|
||||||
|
def test_too_many_fields(self):
|
||||||
|
- p = parse.compile('{:ti}' * 15)
|
||||||
|
- self.assertRaises(parse.TooManyFields, p.parse, '')
|
||||||
|
+ # Python 3.5 removed the limit of 100 named groups in a regular expression,
|
||||||
|
+ # so only test for the exception if the limit exists.
|
||||||
|
+ try:
|
||||||
|
+ re.compile("".join("(?P<n{n}>{n}-)".format(n=i) for i in range(101)))
|
||||||
|
+ except AssertionError:
|
||||||
|
+ p = parse.compile('{:ti}' * 15)
|
||||||
|
+ self.assertRaises(parse.TooManyFields, p.parse, '')
|
||||||
|
|
||||||
|
|
||||||
|
class TestSearch(unittest.TestCase):
|
|
@ -1407,7 +1407,8 @@ backported for previous versions of Python from 2.4 to 3.3.")
|
||||||
(uri (pypi-uri "parse" version))
|
(uri (pypi-uri "parse" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi"))))
|
"0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi"))
|
||||||
|
(patches (search-patches "python-parse-too-many-fields.patch"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
Loading…
Reference in New Issue