File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed
tests/src/OneLogin/saml2_tests Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -212,12 +212,15 @@ def get_session_indexes(request):
212212 session_indexes .append (session_index_node .text )
213213 return session_indexes
214214
215- def is_valid (self , request_data ):
215+ def is_valid (self , request_data , raises = False ):
216216 """
217217 Checks if the Logout Request received is valid
218218 :param request_data: Request Data
219219 :type request_data: dict
220220
221+ :param raises: Optional argument. If true, the function will raise an exception as soon as first validation test fails
222+ :type raises: bool
223+
221224 :return: If the Logout Request is or not valid
222225 :rtype: boolean
223226 """
@@ -274,6 +277,8 @@ def is_valid(self, request_data):
274277 debug = self .__settings .is_debug_active ()
275278 if debug :
276279 print (err )
280+ if raises :
281+ raise
277282 return False
278283
279284 def get_error (self ):
Original file line number Diff line number Diff line change @@ -336,3 +336,19 @@ def testIsValid(self):
336336 request = request .replace ('http://stuff.com/endpoints/endpoints/sls.php' , current_url )
337337 logout_request5 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
338338 self .assertTrue (logout_request5 .is_valid (request_data ))
339+
340+ def testIsValidRaisesExceptionWhenRaisesArgumentIsTrue (self ):
341+ request = OneLogin_Saml2_Utils .b64encode ('<xml>invalid</xml>' )
342+ request_data = {
343+ 'http_host' : 'example.com' ,
344+ 'script_name' : 'index.html' ,
345+ }
346+ settings = OneLogin_Saml2_Settings (self .loadSettingsJSON ())
347+ settings .set_strict (True )
348+
349+ logout_request = OneLogin_Saml2_Logout_Request (settings , request )
350+
351+ self .assertFalse (logout_request .is_valid (request_data ))
352+
353+ with self .assertRaises (Exception ):
354+ logout_request .is_valid (request_data , raises = True )
You can’t perform that action at this time.
0 commit comments