2828 "PendingDeprecationWarning" )
2929
3030
31- @pytest .fixture (scope = "session" , autouse = TEST_MATRIX_AND_ARRAY ,
31+ @pytest .fixture (scope = "session" , autouse = True )
32+ def control_defaults ():
33+ """Make sure the testing session always starts with the defaults.
34+
35+ This should be the first fixture initialized,
36+ so that all other fixtures see the general defaults (unless they set them
37+ themselves) even before importing control/__init__. Enforce this by adding
38+ it as an argument to all other session scoped fixtures.
39+ """
40+ control .reset_defaults ()
41+ the_defaults = control .config .defaults .copy ()
42+ yield
43+ # assert that nothing changed it without reverting
44+ assert control .config .defaults == the_defaults
45+
46+ @pytest .fixture (scope = "function" , autouse = TEST_MATRIX_AND_ARRAY ,
3247 params = [pytest .param ("arrayout" , marks = matrixerrorfilter ),
3348 pytest .param ("matrixout" , marks = matrixfilter )])
3449def matarrayout (request ):
@@ -70,7 +85,7 @@ def check_deprecated_matrix():
7085 yield
7186
7287
73- @pytest .fixture (scope = "session " ,
88+ @pytest .fixture (scope = "function " ,
7489 params = [p for p , usebydefault in
7590 [(pytest .param (np .array ,
7691 id = "arrayin" ),
@@ -90,7 +105,7 @@ def editsdefaults():
90105 """Make sure any changes to the defaults only last during a test"""
91106 restore = control .config .defaults .copy ()
92107 yield
93- control .config .defaults . update ( restore )
108+ control .config .defaults = restore . copy ( )
94109
95110
96111@pytest .fixture (scope = "function" )
0 commit comments