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-fix-tests.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/python2-rdflib-drop-sparqlwrapper.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)) | ||||
|       (sha256 | ||||
|        (base32 | ||||
|         "0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi")))) | ||||
|         "0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi")) | ||||
|       (patches (search-patches "python-parse-too-many-fields.patch")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  |  | |||
		Reference in a new issue