Skip to content

Close matplotlib figures after testing #4810

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

pavoljuhas
Copy link
Collaborator

Add test fixture that cleans up any open matplotlib figures and
plug it in the tests that open new figures.
Fix RuntimeWarning: More than 20 figures have been opened.

@pavoljuhas pavoljuhas requested a review from dstrain115 January 7, 2022 03:36
@CirqBot CirqBot added the size: S 10< lines changed <50 label Jan 7, 2022
@pavoljuhas
Copy link
Collaborator Author

For the record the following patch can be used to find tests that leave opened figures.

diff --git a/conftest.py b/conftest.py
index e74e741e..34bc013f 100644
--- a/conftest.py
+++ b/conftest.py
@@ -28,6 +28,14 @@ def pytest_configure(config):
         config.addinivalue_line("filterwarnings", f"ignore:Call to deprecated create function {f}")
 
 
+import pytest
+@pytest.fixture(autouse=True)
+def failonleftoverfigures(request):
+    import matplotlib.pyplot as plt
+    yield
+    assert not plt.get_fignums()
+
+
 def pytest_addoption(parser):
     parser.addoption(
         "--rigetti-integration",

@MichaelBroughton MichaelBroughton self-assigned this Jan 7, 2022
Copy link
Collaborator

@MichaelBroughton MichaelBroughton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@MichaelBroughton MichaelBroughton added the automerge Tells CirqBot to sync and merge this PR. (If it's running.) label Jan 7, 2022
@CirqBot CirqBot added the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jan 7, 2022
@CirqBot
Copy link
Collaborator

CirqBot commented Jan 7, 2022

Automerge cancelled: There are merge conflicts.

@CirqBot CirqBot removed automerge Tells CirqBot to sync and merge this PR. (If it's running.) front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. labels Jan 7, 2022
@MichaelBroughton MichaelBroughton added the automerge Tells CirqBot to sync and merge this PR. (If it's running.) label Jan 8, 2022
@CirqBot CirqBot added the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jan 8, 2022
@CirqBot CirqBot merged commit 1634589 into quantumlib:master Jan 8, 2022
@CirqBot CirqBot removed automerge Tells CirqBot to sync and merge this PR. (If it's running.) front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. labels Jan 8, 2022
@pavoljuhas pavoljuhas deleted the close-mpl-figures-after-testing branch January 8, 2022 02:23
MichaelBroughton pushed a commit to MichaelBroughton/Cirq that referenced this pull request Jan 22, 2022
Add test fixture that cleans up any open matplotlib figures and
plug it in the tests that open new figures.
Fix RuntimeWarning: More than 20 figures have been opened.
rht pushed a commit to rht/Cirq that referenced this pull request May 1, 2023
Add test fixture that cleans up any open matplotlib figures and
plug it in the tests that open new figures.
Fix RuntimeWarning: More than 20 figures have been opened.
harry-phasecraft pushed a commit to PhaseCraft/Cirq that referenced this pull request Oct 31, 2024
Add test fixture that cleans up any open matplotlib figures and
plug it in the tests that open new figures.
Fix RuntimeWarning: More than 20 figures have been opened.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size: S 10< lines changed <50
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants