@@ -371,9 +371,23 @@ def testGetSPMetadataSigned(self):
371371 settings_info = self .loadSettingsJSON ()
372372 if 'security' not in settings_info :
373373 settings_info ['security' ] = {}
374+
375+ # Use custom cert/key
376+ settings_info ['security' ]['signMetadata' ] = {
377+ "keyFileName" : "sp.key" ,
378+ "certFileName" : "sp.crt"
379+ }
380+ self .generateAndCheckMetadata (settings_info )
381+
382+ # Default cert/key
374383 settings_info ['security' ]['signMetadata' ] = True
375384 self .generateAndCheckMetadata (settings_info )
376385
386+ # Now try again with SP keys set directly from files that no exists:
387+ settings_info ['custom_base_path' ] = '../path/not/exists/'
388+ with self .assertRaises (OneLogin_Saml2_Error ):
389+ OneLogin_Saml2_Settings (settings_info ).get_sp_metadata ()
390+
377391 # Now try again with SP keys set directly in settings and not from files:
378392 del settings_info ['custom_base_path' ]
379393 # Now the keys should not be found, so metadata generation won't work:
@@ -384,6 +398,11 @@ def testGetSPMetadataSigned(self):
384398 settings_info ['sp' ]['privateKey' ] = self .file_contents (join (self .data_path , 'customPath' , 'certs' , 'sp.key' ))
385399 self .generateAndCheckMetadata (settings_info )
386400
401+ # Now fails due no privateKey
402+ del settings_info ['sp' ]['privateKey' ]
403+ with self .assertRaises (OneLogin_Saml2_Error ):
404+ OneLogin_Saml2_Settings (settings_info ).get_sp_metadata ()
405+
387406 def generateAndCheckMetadata (self , settings ):
388407 """
389408 Helper method: Given some settings, generate metadata and validate it
0 commit comments