@@ -555,6 +555,49 @@ def test_from_data_no_security(self, mocker, config):
555555 config = config ,
556556 )
557557
558+ @pytest .mark .parametrize (
559+ ("security" , "expected_requires_security" ),
560+ [
561+ ([{}], False ),
562+ ([{"apiKey" : []}, {}], False ),
563+ ([{"apiKey" : []}], True ),
564+ ],
565+ )
566+ def test_from_data_security_allows_anonymous_alternative (
567+ self ,
568+ security ,
569+ expected_requires_security ,
570+ mocker ,
571+ config ,
572+ ):
573+ data = oai .Operation .model_construct (
574+ description = mocker .MagicMock (),
575+ operationId = mocker .MagicMock (),
576+ security = security ,
577+ responses = mocker .MagicMock (),
578+ )
579+ add_parameters = mocker .patch .object (
580+ Endpoint , "add_parameters" , return_value = (mocker .MagicMock (), mocker .MagicMock (), mocker .MagicMock ())
581+ )
582+ mocker .patch .object (Endpoint , "_add_responses" , return_value = (mocker .MagicMock (), mocker .MagicMock ()))
583+ path = mocker .MagicMock ()
584+ method = mocker .MagicMock ()
585+ mocker .patch ("openapi_python_client.utils.remove_string_escapes" , return_value = data .description )
586+
587+ Endpoint .from_data (
588+ data = data ,
589+ path = path ,
590+ method = method ,
591+ tags = ["default" ],
592+ schemas = mocker .MagicMock (),
593+ responses = {},
594+ parameters = mocker .MagicMock (),
595+ config = config ,
596+ request_bodies = {},
597+ )
598+
599+ assert add_parameters .call_args .kwargs ["endpoint" ].requires_security is expected_requires_security
600+
558601 def test_from_data_some_bad_bodies (self , config ):
559602 endpoint , _ , _ = Endpoint .from_data (
560603 data = oai .Operation (
0 commit comments