File tree 2 files changed +20
-2
lines changed
2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -44,9 +44,9 @@ def get_default_provider(self) -> FeatureProvider:
44
44
return self ._default_provider
45
45
46
46
def clear_providers (self ) -> None :
47
- for provider in self ._providers .values ():
48
- provider .shutdown ()
47
+ self .shutdown ()
49
48
self ._providers .clear ()
49
+ self ._default_provider = NoOpProvider ()
50
50
51
51
def shutdown (self ) -> None :
52
52
for provider in {self ._default_provider , * self ._providers .values ()}:
Original file line number Diff line number Diff line change 5
5
from openfeature .api import (
6
6
add_hooks ,
7
7
clear_hooks ,
8
+ clear_providers ,
8
9
get_client ,
9
10
get_evaluation_context ,
10
11
get_hooks ,
@@ -210,3 +211,20 @@ def test_shutdown_should_shutdown_every_registered_provider_once():
210
211
# Then
211
212
provider_1 .shutdown .assert_called_once ()
212
213
provider_2 .shutdown .assert_called_once ()
214
+
215
+
216
+ def test_clear_providers_shutdowns_every_provider_and_resets_default_provider ():
217
+ # Given
218
+ provider_1 = MagicMock (spec = FeatureProvider )
219
+ provider_2 = MagicMock (spec = FeatureProvider )
220
+ set_provider (provider_1 )
221
+ set_provider (provider_2 , "foo" )
222
+ set_provider (provider_2 , "bar" )
223
+
224
+ # When
225
+ clear_providers ()
226
+
227
+ # Then
228
+ provider_1 .shutdown .assert_called_once ()
229
+ provider_2 .shutdown .assert_called_once ()
230
+ assert isinstance (get_client ().provider , NoOpProvider )
You can’t perform that action at this time.
0 commit comments