gnu: python-pydot: Update to 1.4.2.
* gnu/packages/graphviz.scm (python-pydot): Update to 1.4.2. [source](patches): Remove. * gnu/packages/patches/python-pydot-regression-test.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
This commit is contained in:
		
							parent
							
								
									81b7bf40b2
								
							
						
					
					
						commit
						883227dde1
					
				
					 3 changed files with 3 additions and 85 deletions
				
			
		|  | @ -1711,7 +1711,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/python-pycrypto-time-clock.patch		\
 | ||||
|   %D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
 | ||||
|   %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
 | ||||
|   %D%/packages/patches/python-pydot-regression-test.patch	\
 | ||||
|   %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
 | ||||
|   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
 | ||||
|   %D%/packages/patches/python-pytest-asyncio-python-3.8.patch	\
 | ||||
|  |  | |||
|  | @ -370,15 +370,14 @@ can be used either as a standalone application, or as a Python library.") | |||
| (define-public python-pydot | ||||
|   (package | ||||
|     (name "python-pydot") | ||||
|     (version "1.4.1") | ||||
|     (version "1.4.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "pydot" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "00az4cbf8bv447lkk9xi6pjm7gcc7ia33y4pm71fwfwis56rv76l")) | ||||
|        (patches (search-patches "python-pydot-regression-test.patch")))) | ||||
|          "0z80zwldf7ffkwrpm28hixsiqp3053j7g281xd6phmnbkfiq3014")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  | @ -389,8 +388,7 @@ can be used either as a standalone application, or as a Python library.") | |||
|              (when tests? | ||||
|                (add-installed-pythonpath inputs outputs) | ||||
|                (with-directory-excursion "test" | ||||
|                  (invoke "python" "pydot_unittest.py"))) | ||||
|              #t))))) | ||||
|                  (invoke "python" "pydot_unittest.py")))))))) | ||||
|     (native-inputs | ||||
|      ;; For tests. | ||||
|      (list graphviz python-chardet)) | ||||
|  |  | |||
|  | @ -1,79 +0,0 @@ | |||
| This patch is taken from the upstream repository | ||||
| https://github.com/pydot/pydot/commit/a10ced4d132361027a545a471af4541dea8c5cf5.patch | ||||
| It should be included in the 1.4.2 release. | ||||
| 
 | ||||
| 
 | ||||
| From a10ced4d132361027a545a471af4541dea8c5cf5 Mon Sep 17 00:00:00 2001 | ||||
| From: Peter Nowee <peter@peternowee.com> | ||||
| Date: Wed, 26 Jun 2019 15:43:38 +0800 | ||||
| Subject: [PATCH] Fix multi.dot Graphviz regression test | ||||
| 
 | ||||
| Commit d6602ad of 2018-12-01 fixed the regression test broken by commit | ||||
| 2d55978 of 2016-07-01. This revealed that `test/graphs/multi.dot` was | ||||
| failing. | ||||
| 
 | ||||
| `multi.dot` was introduced in commit 2b3f088 of 2010-11-07 together | ||||
| with many of the other tests still here today. It has not been touched | ||||
| since. It is a DOT-file containing two digraphs. The regression test | ||||
| compares the JPEG images rendered from the DOT-file by pydot with those | ||||
| rendered by Graphviz's dot directly. | ||||
| 
 | ||||
| Commit 66734d2 of 2016-07-01 is the actual cause of the failure. It | ||||
| changed one of the render methods of the regression test, | ||||
| `_render_with_pydot`, from calculating a single hash for all the JPEG | ||||
| images to calculating separate hashes for each JPEG image and then | ||||
| concatenating those hashes in one long string. The other render method, | ||||
| `_render_with_graphviz`, still calculates a single hash over all data. | ||||
| For DOT-files that generate only one image the end result is the same, | ||||
| but because `multi.dot` has two graphs, it produces two images and this | ||||
| leads to comparing a string of two hashes with one single hash. | ||||
| 
 | ||||
| I do not think the change in generating the hash was intentional, for | ||||
| the following reasons: | ||||
| - Commit 66734d2 states that its purpose was to adapt the test to an
 | ||||
|   API change in pydot. It does not mention a deliberate choice to | ||||
|   change the testing method. | ||||
| - There was no effort to change `_render_with_graphviz` to also produce
 | ||||
|   multiple hashes. | ||||
| - Except for easier debugging in case of a failing test with multiple
 | ||||
|   images (AFAICT, only `multi.dot`), I do not see much added benefit in | ||||
|   checking a concatenation of the hashes of all images vs. checking one | ||||
|   hash of all images together: In both cases the test will fail if one | ||||
|   or more images is rendered differently. | ||||
| - Given that there were many commits authored that same hour, including
 | ||||
|   commit 2d55978 which broke the regression tests, I suspect the author | ||||
|   did not run the tests for each individual commit, but only at the end | ||||
|   of that batch, and was therefore also not alerted of this change by | ||||
|   the test suite. | ||||
| 
 | ||||
| Assuming that the change was not intended, this commit will now revert | ||||
| `_render_with_pydot` to the old behavior of calculating a single hash | ||||
| from all JPEG image data. | ||||
| 
 | ||||
| Tested with Debian 9.9, Graphviz 2.38.0-17, Python 2.7.13-2 and 3.5.3-1. | ||||
| 
 | ||||
| Fixes https://github.com/pydot/pydot/issues/204. | ||||
| ---
 | ||||
|  test/pydot_unittest.py | 8 ++++---- | ||||
|  1 file changed, 4 insertions(+), 4 deletions(-) | ||||
| 
 | ||||
| diff --git a/test/pydot_unittest.py b/test/pydot_unittest.py
 | ||||
| index 881ee16..64aa856 100644
 | ||||
| --- a/test/pydot_unittest.py
 | ||||
| +++ b/test/pydot_unittest.py
 | ||||
| @@ -194,11 +194,11 @@ def _render_with_graphviz(self, filename, encoding):
 | ||||
|   | ||||
|      def _render_with_pydot(self, filename, encoding): | ||||
|          c = pydot.graph_from_dot_file(filename, encoding=encoding) | ||||
| -        sha = ''
 | ||||
| +        jpe_data = bytearray()
 | ||||
|          for g in c: | ||||
| -            jpe_data = g.create(prog=TEST_PROGRAM, format='jpe', encoding=encoding)
 | ||||
| -            sha += sha256(jpe_data).hexdigest()
 | ||||
| -        return sha
 | ||||
| +            jpe_data.extend(g.create(prog=TEST_PROGRAM, format='jpe',
 | ||||
| +                                     encoding=encoding))
 | ||||
| +        return sha256(jpe_data).hexdigest()
 | ||||
|   | ||||
|      def test_my_regression_tests(self): | ||||
|          path = os.path.join(test_dir, TESTS_DIR_1) | ||||
		Reference in a new issue