From 883227dde104f00f711bb085918b91e7fd2bf30f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 18 Jan 2022 17:37:21 +0100 Subject: 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. --- .../patches/python-pydot-regression-test.patch | 79 ---------------------- 1 file changed, 79 deletions(-) delete mode 100644 gnu/packages/patches/python-pydot-regression-test.patch (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/python-pydot-regression-test.patch b/gnu/packages/patches/python-pydot-regression-test.patch deleted file mode 100644 index d2f0f5996e..0000000000 --- a/gnu/packages/patches/python-pydot-regression-test.patch +++ /dev/null @@ -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 -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) -- cgit v1.2.3