@@ -173,6 +173,27 @@ def test_connection_check_capability_false_before_initialized():
173173 assert conn .check_capability (ClientCapabilities (sampling = SamplingCapability ())) is False
174174
175175
176+ @pytest .mark .parametrize (
177+ ("have" , "want" , "expected" ),
178+ [
179+ (ClientCapabilities (roots = None ), ClientCapabilities (roots = RootsCapability ()), False ),
180+ (
181+ ClientCapabilities (roots = RootsCapability (list_changed = False )),
182+ ClientCapabilities (roots = RootsCapability (list_changed = True )),
183+ False ,
184+ ),
185+ (ClientCapabilities (sampling = None ), ClientCapabilities (sampling = SamplingCapability ()), False ),
186+ (ClientCapabilities (experimental = None ), ClientCapabilities (experimental = {"a" : {}}), False ),
187+ (ClientCapabilities (experimental = {"a" : {}}), ClientCapabilities (experimental = {"b" : {}}), False ),
188+ (ClientCapabilities (experimental = {"a" : {}}), ClientCapabilities (experimental = {"a" : {}}), True ),
189+ ],
190+ )
191+ def test_check_capability_per_field_branches (have : ClientCapabilities , want : ClientCapabilities , expected : bool ):
192+ conn = Connection (StubOutbound (), has_standalone_channel = True )
193+ conn .client_capabilities = have
194+ assert conn .check_capability (want ) is expected
195+
196+
176197def test_connection_check_capability_true_when_client_declares_it ():
177198 conn = Connection (StubOutbound (), has_standalone_channel = True )
178199 conn .client_capabilities = ClientCapabilities (
0 commit comments