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
					
				
					 3 changed files with 55 additions and 1 deletions
				
			
		|  | @ -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	\
 | ||||||
|  |  | ||||||
							
								
								
									
										52
									
								
								gnu/packages/patches/python-parse-too-many-fields.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								gnu/packages/patches/python-parse-too-many-fields.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 | ||||||
|  |  | ||||||
		Reference in a new issue