88from math import pi , log10
99
1010import matplotlib .pyplot as plt
11+ from matplotlib .testing .decorators import cleanup as mplcleanup
1112import numpy as np
1213import pytest
1314
1415import control as ct
1516
1617
17- @pytest .fixture (scope = "module" )
18- def configtester ():
19- # save the current state
20- defaults = ct .config .defaults
21- yield
22- # Get rid of any figures that we created
23- plt .close ('all' )
24- # Reset the configuration defaults
25- ct .config .defaults = defaults
26-
27-
28- @pytest .mark .usefixtures ("configtester" )
18+ @pytest .mark .usefixtures ("editsdefaults" )
2919class TestConfig :
3020
3121 # Create a simple second order system to use for testing
@@ -37,6 +27,7 @@ def test_set_defaults(self):
3727 assert ct .config .defaults ['config.test2' ] == 2
3828 assert ct .config .defaults ['config.test3' ] is None
3929
30+ @mplcleanup
4031 def test_get_param (self ):
4132 assert ct .config ._get_param ('bode' , 'dB' )\
4233 == ct .config .defaults ['bode.dB' ]
@@ -57,7 +48,7 @@ def test_get_param(self):
5748
5849 assert ct .config ._get_param ('config' , 'test4' , {'test4' : 1 }, None ) == 1
5950
60-
51+ @ mplcleanup
6152 def test_fbs_bode (self ):
6253 ct .use_fbs_defaults ()
6354
@@ -104,6 +95,7 @@ def test_fbs_bode(self):
10495
10596 ct .reset_defaults ()
10697
98+ @mplcleanup
10799 def test_matlab_bode (self ):
108100 ct .use_matlab_defaults ()
109101
@@ -150,6 +142,7 @@ def test_matlab_bode(self):
150142
151143 ct .reset_defaults ()
152144
145+ @mplcleanup
153146 def test_custom_bode_default (self ):
154147 ct .config .defaults ['bode.dB' ] = True
155148 ct .config .defaults ['bode.deg' ] = True
@@ -173,6 +166,7 @@ def test_custom_bode_default(self):
173166
174167 ct .reset_defaults ()
175168
169+ @mplcleanup
176170 def test_bode_number_of_samples (self ):
177171 # Set the number of samples (default is 50, from np.logspace)
178172 mag_ret , phase_ret , omega_ret = ct .bode_plot (self .sys , omega_num = 87 )
@@ -189,6 +183,7 @@ def test_bode_number_of_samples(self):
189183
190184 ct .reset_defaults ()
191185
186+ @mplcleanup
192187 def test_bode_feature_periphery_decade (self ):
193188 # Generate a sample Bode plot to figure out the range it uses
194189 ct .reset_defaults () # Make sure starting state is correct
@@ -221,8 +216,9 @@ def test_reset_defaults(self):
221216 assert ct .config .defaults ['freqplot.feature_periphery_decades' ] == 1.0
222217
223218 def test_legacy_defaults (self ):
224- ct .use_legacy_defaults ('0.8.3' )
225- assert (isinstance (ct .ss (0 ,0 ,0 ,1 ).D , np .matrix ))
219+ with pytest .deprecated_call ():
220+ ct .use_legacy_defaults ('0.8.3' )
221+ assert (isinstance (ct .ss (0 ,0 ,0 ,1 ).D , np .matrix ))
226222 ct .reset_defaults ()
227223 assert (isinstance (ct .ss (0 ,0 ,0 ,1 ).D , np .ndarray ))
228224
0 commit comments