From c91e4a417c2b6acbe5993cd67c955decc208c547 Mon Sep 17 00:00:00 2001 From: Scott Lowe Date: Sat, 10 Jul 2021 11:20:42 +0100 Subject: [PATCH 1/2] TST: Test neuropil.separate with verbosity on/off --- fissa/tests/test_neuropil.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/fissa/tests/test_neuropil.py b/fissa/tests/test_neuropil.py index 7bf39874..6ed06092 100644 --- a/fissa/tests/test_neuropil.py +++ b/fissa/tests/test_neuropil.py @@ -45,6 +45,18 @@ def run_method(self, method, expected_converged=None, **kwargs): def test_method(self): self.run_method(self.method, expected_converged=True, max_tries=1) + def test_method_loud(self): + capture_pre = self.capsys.readouterr() # Clear stdout + self.run_method(self.method, expected_converged=True, max_tries=1, verbosity=1) + capture_post = self.recapsys(capture_pre) # Capture and then re-output + self.assertTrue("converged after" in capture_post.out) + + def test_method_quiet(self): + capture_pre = self.capsys.readouterr() # Clear stdout + self.run_method(self.method, expected_converged=True, max_tries=1, verbosity=0) + capture_post = self.recapsys(capture_pre) # Capture and then re-output + self.assert_equal(capture_post.out, "") + def test_reduce_dim(self): self.run_method(self.method, expected_converged=True, max_tries=1, n=2) @@ -56,10 +68,23 @@ def test_manual_seed(self): random_state=0, ) - def test_retry(self): + def test_retry_loud(self): + capture_pre = self.capsys.readouterr() # Clear stdout + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.run_method(self.method, max_iter=1, max_tries=3, verbosity=1) + capture_post = self.recapsys(capture_pre) # Capture and then re-output + self.assertTrue("Attempt 1 failed to converge at " in capture_post.out) + self.assertTrue("Trying a new random state." in capture_post.out) + self.assertTrue("aximum number of allowed tries reached" in capture_post.out) + + def test_retry_quiet(self): + capture_pre = self.capsys.readouterr() # Clear stdout with warnings.catch_warnings(): warnings.simplefilter("ignore") - self.run_method(self.method, max_iter=1, max_tries=3) + self.run_method(self.method, max_iter=1, max_tries=3, verbosity=0) + capture_post = self.recapsys(capture_pre) # Capture and then re-output + self.assert_equal(capture_post.out, "") class TestNeuropilNMF(BaseTestCase, NeuropilMixin): From 42335212d2ef4257481233bbedce895d973342a2 Mon Sep 17 00:00:00 2001 From: Scott Lowe Date: Sat, 10 Jul 2021 12:04:51 +0100 Subject: [PATCH 2/2] TST: Only assert loud failure if convergence fails --- fissa/tests/test_neuropil.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/fissa/tests/test_neuropil.py b/fissa/tests/test_neuropil.py index 6ed06092..9376a0e7 100644 --- a/fissa/tests/test_neuropil.py +++ b/fissa/tests/test_neuropil.py @@ -41,6 +41,7 @@ def run_method(self, method, expected_converged=None, **kwargs): # If specified, assert that the result is as expected if expected_converged is not None: self.assert_equal(convergence["converged"], expected_converged) + return convergence["converged"] def test_method(self): self.run_method(self.method, expected_converged=True, max_tries=1) @@ -72,11 +73,16 @@ def test_retry_loud(self): capture_pre = self.capsys.readouterr() # Clear stdout with warnings.catch_warnings(): warnings.simplefilter("ignore") - self.run_method(self.method, max_iter=1, max_tries=3, verbosity=1) + converged = self.run_method( + self.method, max_iter=1, max_tries=3, verbosity=1 + ) capture_post = self.recapsys(capture_pre) # Capture and then re-output - self.assertTrue("Attempt 1 failed to converge at " in capture_post.out) - self.assertTrue("Trying a new random state." in capture_post.out) - self.assertTrue("aximum number of allowed tries reached" in capture_post.out) + if not converged: + self.assertTrue("Attempt 1 failed to converge at " in capture_post.out) + self.assertTrue("Trying a new random state." in capture_post.out) + self.assertTrue( + "aximum number of allowed tries reached" in capture_post.out + ) def test_retry_quiet(self): capture_pre = self.capsys.readouterr() # Clear stdout