Skip to content

Commit d3549f9

Browse files
committed
Improve logout request tests
1 parent e7b17a7 commit d3549f9

1 file changed

Lines changed: 13 additions & 30 deletions

File tree

tests/src/OneLogin/saml2_tests/logout_request_test.py

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,8 @@ def testGetNameIdData(self):
121121
self.assertEqual(expected_name_id_data, name_id_data_2)
122122

123123
request_2 = self.file_contents(join(self.data_path, 'logout_requests', 'logout_request_encrypted_nameid.xml'))
124-
with self.assertRaises(Exception) as context:
124+
with self.assertRaisesRegexp(Exception, 'Key is required in order to decrypt the NameID'):
125125
OneLogin_Saml2_Logout_Request.get_nameid(request_2)
126-
exception = context.exception
127-
self.assertIn("Key is required in order to decrypt the NameID", str(exception))
128126

129127
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
130128
key = settings.get_sp_key()
@@ -140,16 +138,12 @@ def testGetNameIdData(self):
140138
encrypted_id_nodes = dom_2.getElementsByTagName('saml:EncryptedID')
141139
encrypted_data = encrypted_id_nodes[0].firstChild.nextSibling
142140
encrypted_id_nodes[0].removeChild(encrypted_data)
143-
with self.assertRaises(Exception) as context:
141+
with self.assertRaisesRegexp(Exception, 'Not NameID found in the Logout Request'):
144142
OneLogin_Saml2_Logout_Request.get_nameid(dom_2.toxml(), key)
145-
exception = context.exception
146-
self.assertIn("Not NameID found in the Logout Request", str(exception))
147143

148144
inv_request = self.file_contents(join(self.data_path, 'logout_requests', 'invalids', 'no_nameId.xml'))
149-
with self.assertRaises(Exception) as context:
145+
with self.assertRaisesRegexp(Exception, 'Not NameID found in the Logout Request'):
150146
OneLogin_Saml2_Logout_Request.get_nameid(inv_request)
151-
exception = context.exception
152-
self.assertIn("Not NameID found in the Logout Request", str(exception))
153147

154148
def testGetNameId(self):
155149
"""
@@ -160,10 +154,8 @@ def testGetNameId(self):
160154
self.assertEqual(name_id, 'ONELOGIN_1e442c129e1f822c8096086a1103c5ee2c7cae1c')
161155

162156
request_2 = self.file_contents(join(self.data_path, 'logout_requests', 'logout_request_encrypted_nameid.xml'))
163-
with self.assertRaises(Exception) as context:
157+
with self.assertRaisesRegexp(Exception, 'Key is required in order to decrypt the NameID'):
164158
OneLogin_Saml2_Logout_Request.get_nameid(request_2)
165-
exception = context.exception
166-
self.assertIn("Key is required in order to decrypt the NameID", str(exception))
167159

168160
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
169161
key = settings.get_sp_key()
@@ -242,12 +234,9 @@ def testIsInvalidIssuer(self):
242234
self.assertTrue(logout_request.is_valid(request_data))
243235

244236
settings.set_strict(True)
245-
try:
246-
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
247-
valid = logout_request2.is_valid(request_data)
248-
self.assertFalse(valid)
249-
except Exception as e:
250-
self.assertIn('Invalid issuer in the Logout Request', str(e))
237+
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
238+
with self.assertRaisesRegexp(Exception, 'Invalid issuer in the Logout Request'):
239+
logout_request2.is_valid(request_data, raises=True)
251240

252241
def testIsInvalidDestination(self):
253242
"""
@@ -264,12 +253,9 @@ def testIsInvalidDestination(self):
264253
self.assertTrue(logout_request.is_valid(request_data))
265254

266255
settings.set_strict(True)
267-
try:
268-
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
269-
valid = logout_request2.is_valid(request_data)
270-
self.assertFalse(valid)
271-
except Exception as e:
272-
self.assertIn('The LogoutRequest was received at', str(e))
256+
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
257+
with self.assertRaisesRegexp(Exception, 'The LogoutRequest was received at'):
258+
logout_request2.is_valid(request_data, raises=True)
273259

274260
dom = parseString(request)
275261
dom.documentElement.setAttribute('Destination', None)
@@ -298,12 +284,9 @@ def testIsInvalidNotOnOrAfter(self):
298284
self.assertTrue(logout_request.is_valid(request_data))
299285

300286
settings.set_strict(True)
301-
try:
302-
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
303-
valid = logout_request2.is_valid(request_data)
304-
self.assertFalse(valid)
305-
except Exception as e:
306-
self.assertIn('Timing issues (please check your clock settings)', str(e))
287+
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
288+
with self.assertRaisesRegexp(Exception, 'Timing issues \(please check your clock settings\)'):
289+
logout_request2.is_valid(request_data, raises=True)
307290

308291
def testIsValid(self):
309292
"""

0 commit comments

Comments
 (0)