From bb7755308274851a3f2b1a842ff9ce64c171d06a Mon Sep 17 00:00:00 2001 From: "P. L. Lim" <2090236+pllim@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:48:18 -0500 Subject: [PATCH 1/4] Fix single_reference=True Co-authored-by: Conor MacBride --- CHANGES.md | 2 ++ pytest_arraydiff/plugin.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 7e51924..f9362de 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,8 @@ 0.7 (unreleased) ---------------- +- Fix broken ``single_reference=True`` usage. [#43] + 0.6 (2023-11-15) ---------------- diff --git a/pytest_arraydiff/plugin.py b/pytest_arraydiff/plugin.py index f476e68..1c93cf2 100755 --- a/pytest_arraydiff/plugin.py +++ b/pytest_arraydiff/plugin.py @@ -310,8 +310,10 @@ def pytest_runtest_call(self, item): # Find test name to use as plot name filename = compare.kwargs.get('filename', None) if filename is None: - filename = item.name + '.' + extension - if not single_reference: + if single_reference: + filename = item.function + '.' + extension + else: + filename = item.name + '.' + extension filename = filename.replace('[', '_').replace(']', '_') filename = filename.replace('_.' + extension, '.' + extension) From 1dca33a1694ed763235f3887fae1fc7c6ea696b9 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Fri, 24 Nov 2023 14:28:50 +0000 Subject: [PATCH 2/4] Added regression test for single_reference=True bug --- tests/baseline/test_single_reference.fits | Bin 0 -> 5760 bytes tests/test_pytest_arraydiff.py | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 tests/baseline/test_single_reference.fits diff --git a/tests/baseline/test_single_reference.fits b/tests/baseline/test_single_reference.fits new file mode 100644 index 0000000000000000000000000000000000000000..9fab1aecec0b5b4ebc8f9fbcacbf001d054bd68d GIT binary patch literal 5760 zcmeIuF$%&k6vlCn@-84^Ep8%;6#`lc&CoU4795&LQimQzZ|Y_&NHe6E#YMiiG!2hG z;g_>xc1Va;W?HSL>v_h6bm!5rlwPieGg||0d# Date: Fri, 24 Nov 2023 14:35:34 +0000 Subject: [PATCH 3/4] Added a class test that uses the same reference --- tests/test_pytest_arraydiff.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/test_pytest_arraydiff.py b/tests/test_pytest_arraydiff.py index c8ae5a6..da603fa 100644 --- a/tests/test_pytest_arraydiff.py +++ b/tests/test_pytest_arraydiff.py @@ -162,5 +162,17 @@ def test_single_reference(spam): return np.ones((3, 4)) * 1.6 + 1.4 +class TestSingleReferenceClass: + + @pytest.mark.array_compare( + reference_dir=reference_dir, + atol=1.5, + file_format='fits', + single_reference=True) + @pytest.mark.parametrize('spam', ('egg', 'bacon')) + def test_single_reference(self, spam): + return np.ones((3, 4)) * 1.6 + 1.4 + + def test_nofile(): pass From 86e919eb7c45242eaeff502ef4e079c0a10bec2c Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Fri, 24 Nov 2023 17:08:44 +0000 Subject: [PATCH 4/4] Fix function name --- pytest_arraydiff/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytest_arraydiff/plugin.py b/pytest_arraydiff/plugin.py index 1c93cf2..825c9b6 100755 --- a/pytest_arraydiff/plugin.py +++ b/pytest_arraydiff/plugin.py @@ -311,7 +311,7 @@ def pytest_runtest_call(self, item): filename = compare.kwargs.get('filename', None) if filename is None: if single_reference: - filename = item.function + '.' + extension + filename = item.originalname + '.' + extension else: filename = item.name + '.' + extension filename = filename.replace('[', '_').replace(']', '_')