From 2a3d7c89d83855342f3fc72ea8763a41fb6e5bbb Mon Sep 17 00:00:00 2001 From: Sangjoon Bob Lee Date: Fri, 20 Dec 2024 11:53:21 -0500 Subject: [PATCH 1/4] Refactor expecting divison by zero test --- news/pytest-handle-warning.rst | 23 +++++++++++++++++++++++ tests/test_transforms.py | 25 +++++++++++++++++++------ 2 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 news/pytest-handle-warning.rst diff --git a/news/pytest-handle-warning.rst b/news/pytest-handle-warning.rst new file mode 100644 index 00000000..8900165f --- /dev/null +++ b/news/pytest-handle-warning.rst @@ -0,0 +1,23 @@ +**Added:** + +* No news added + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* diff --git a/tests/test_transforms.py b/tests/test_transforms.py index cf6a6ebb..fc4e4991 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -117,19 +117,32 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg): @pytest.mark.parametrize( - "q, expected_d", + "q, expected_d, warning_expected", [ - # UC1: User specified empty q values - (np.array([]), np.array([])), - # UC2: User specified valid q values + # Case 1: empty q values, expect empty d values + (np.array([]), np.array([]), False), + + # Case 2: + # 1. valid q values, expect d values without warning + ( + np.array([0.1, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]), + np.array([62.83185307, 2, 1, 0.66667, 0.5, 0.4]), + False + ), + # 2. valid q values containing 0, expect d values with divide by zero warning ( np.array([0, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]), np.array([np.inf, 2, 1, 0.66667, 0.5, 0.4]), + True ), ], ) -def test_q_to_d(q, expected_d): - actual_d = q_to_d(q) +def test_q_to_d(q, expected_d, warning_expected): + if warning_expected: + with pytest.warns(RuntimeWarning, match="divide by zero encountered in divide"): + actual_d = q_to_d(q) + else: + actual_d = q_to_d(q) assert np.allclose(actual_d, expected_d) From f8704f1b0dcbf90082968e9e502f2969d090708b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:55:34 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit hooks --- tests/test_transforms.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/test_transforms.py b/tests/test_transforms.py index fc4e4991..fb1d0f17 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -121,19 +121,18 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg): [ # Case 1: empty q values, expect empty d values (np.array([]), np.array([]), False), - # Case 2: # 1. valid q values, expect d values without warning ( np.array([0.1, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]), np.array([62.83185307, 2, 1, 0.66667, 0.5, 0.4]), - False + False, ), # 2. valid q values containing 0, expect d values with divide by zero warning ( np.array([0, 1 * np.pi, 2 * np.pi, 3 * np.pi, 4 * np.pi, 5 * np.pi]), np.array([np.inf, 2, 1, 0.66667, 0.5, 0.4]), - True + True, ), ], ) From 12e2b89444edc933546cddacef9b74bd1149ffb3 Mon Sep 17 00:00:00 2001 From: Sangjoon Bob Lee Date: Fri, 20 Dec 2024 18:41:00 -0500 Subject: [PATCH 3/4] Add higher-level comment to test func and add news --- news/pytest-handle-warning.rst | 2 +- tests/test_transforms.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/news/pytest-handle-warning.rst b/news/pytest-handle-warning.rst index 8900165f..81bf78bf 100644 --- a/news/pytest-handle-warning.rst +++ b/news/pytest-handle-warning.rst @@ -1,6 +1,6 @@ **Added:** -* No news added +* catch division by zero warning messages in tests **Changed:** diff --git a/tests/test_transforms.py b/tests/test_transforms.py index fb1d0f17..14a126ae 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -119,8 +119,10 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg): @pytest.mark.parametrize( "q, expected_d, warning_expected", [ + # Test conversion of q to d with valid values # Case 1: empty q values, expect empty d values (np.array([]), np.array([]), False), + # Case 2: # 1. valid q values, expect d values without warning ( From 765c9e21920c231305b846f020fcaa706fe2cdde Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 23:41:09 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit hooks --- tests/test_transforms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_transforms.py b/tests/test_transforms.py index 14a126ae..188ff150 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -122,7 +122,6 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg): # Test conversion of q to d with valid values # Case 1: empty q values, expect empty d values (np.array([]), np.array([]), False), - # Case 2: # 1. valid q values, expect d values without warning (