@@ -24,73 +24,50 @@ def _reset_singleton():
2424 ObservabilityHostingManager .reset ()
2525
2626
27- def test_configure_returns_instance ():
28- """configure() should return an ObservabilityHostingManager instance."""
29- middleware_set = MagicMock ()
30- instance = ObservabilityHostingManager .configure (middleware_set , ObservabilityHostingOptions ())
31- assert isinstance (instance , ObservabilityHostingManager )
32-
33-
3427def test_configure_is_singleton ():
35- """Subsequent configure() calls should return the same instance ."""
28+ """configure() should return an ObservabilityHostingManager and be a singleton ."""
3629 middleware_set = MagicMock ()
3730 options = ObservabilityHostingOptions ()
3831 first = ObservabilityHostingManager .configure (middleware_set , options )
32+ assert isinstance (first , ObservabilityHostingManager )
3933 second = ObservabilityHostingManager .configure (middleware_set , options )
4034 assert first is second
4135
4236
43- def test_configure_registers_baggage_middleware_by_default ():
44- """By default, BaggageMiddleware should be registered."""
45- middleware_set = MagicMock ()
46- ObservabilityHostingManager .configure (middleware_set , ObservabilityHostingOptions ())
47-
48- # The middleware_set.use should have been called once (only BaggageMiddleware by default)
49- assert middleware_set .use .call_count == 1
50- registered = middleware_set .use .call_args_list [0 ][0 ][0 ]
51- assert isinstance (registered , BaggageMiddleware )
52-
53-
54- def test_configure_registers_both_middlewares ():
55- """When output logging is enabled, both middlewares should be registered."""
56- middleware_set = MagicMock ()
57- options = ObservabilityHostingOptions (enable_baggage = True , enable_output_logging = True )
58- ObservabilityHostingManager .configure (middleware_set , options )
59-
60- assert middleware_set .use .call_count == 2
61- registered_types = [c [0 ][0 ] for c in middleware_set .use .call_args_list ]
62- assert isinstance (registered_types [0 ], BaggageMiddleware )
63- assert isinstance (registered_types [1 ], OutputLoggingMiddleware )
64-
65-
66- def test_configure_disables_baggage ():
67- """When baggage is disabled, only output logging should be registered (if enabled)."""
68- middleware_set = MagicMock ()
69- options = ObservabilityHostingOptions (enable_baggage = False , enable_output_logging = True )
70- ObservabilityHostingManager .configure (middleware_set , options )
71-
72- assert middleware_set .use .call_count == 1
73- registered = middleware_set .use .call_args_list [0 ][0 ][0 ]
74- assert isinstance (registered , OutputLoggingMiddleware )
75-
76-
77- def test_configure_disables_all ():
78- """When both are disabled, no middleware should be registered."""
37+ @pytest .mark .parametrize (
38+ "enable_baggage,enable_output_logging,expected_types" ,
39+ [
40+ (True , False , [BaggageMiddleware ]),
41+ (True , True , [BaggageMiddleware , OutputLoggingMiddleware ]),
42+ (False , True , [OutputLoggingMiddleware ]),
43+ (False , False , []),
44+ ],
45+ ids = ["default_baggage_only" , "both_enabled" , "output_only" , "none" ],
46+ )
47+ def test_configure_registers_expected_middlewares (
48+ enable_baggage , enable_output_logging , expected_types
49+ ):
50+ """configure() should register the correct middlewares based on options."""
7951 middleware_set = MagicMock ()
80- options = ObservabilityHostingOptions (enable_baggage = False , enable_output_logging = False )
52+ options = ObservabilityHostingOptions (
53+ enable_baggage = enable_baggage , enable_output_logging = enable_output_logging
54+ )
8155 ObservabilityHostingManager .configure (middleware_set , options )
8256
83- middleware_set .use .assert_not_called ()
84-
85-
86- def test_configure_raises_on_none_middleware_set ():
87- """configure() should raise TypeError when middleware_set is None."""
88- with pytest .raises (TypeError , match = "middleware_set must not be None" ):
89- ObservabilityHostingManager .configure (None , ObservabilityHostingOptions ())
57+ assert middleware_set .use .call_count == len (expected_types )
58+ for call , expected_type in zip (middleware_set .use .call_args_list , expected_types , strict = True ):
59+ assert isinstance (call [0 ][0 ], expected_type )
9060
9161
92- def test_configure_raises_on_none_options ():
93- """configure() should raise TypeError when options is None."""
94- middleware_set = MagicMock ()
95- with pytest .raises (TypeError , match = "options must not be None" ):
96- ObservabilityHostingManager .configure (middleware_set , None )
62+ @pytest .mark .parametrize (
63+ "middleware_set,options,match" ,
64+ [
65+ (None , ObservabilityHostingOptions (), "middleware_set must not be None" ),
66+ (MagicMock (), None , "options must not be None" ),
67+ ],
68+ ids = ["none_middleware_set" , "none_options" ],
69+ )
70+ def test_configure_raises_on_none (middleware_set , options , match ):
71+ """configure() should raise TypeError when required args are None."""
72+ with pytest .raises (TypeError , match = match ):
73+ ObservabilityHostingManager .configure (middleware_set , options )
0 commit comments