diff options
| author | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-08-04 19:55:17 +0000 |
|---|---|---|
| committer | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-08-04 19:55:17 +0000 |
| commit | 6f48cba5e81959bf43bf6a0d668f9bda1e4545b8 (patch) | |
| tree | 0a9f23507b1edd624a50448b1fb57f86a67be534 /python/tests | |
| parent | 3e411cc8ef1d2c6088df57ea6f5bd8f0f98f4c79 (diff) | |
| download | lasso-6f48cba5e81959bf43bf6a0d668f9bda1e4545b8.tar.gz lasso-6f48cba5e81959bf43bf6a0d668f9bda1e4545b8.tar.xz lasso-6f48cba5e81959bf43bf6a0d668f9bda1e4545b8.zip | |
Python binding now raises exceptions instead of returning error codes.
Close bug #237.
Diffstat (limited to 'python/tests')
| -rw-r--r-- | python/tests/login_tests.py | 87 |
1 files changed, 28 insertions, 59 deletions
diff --git a/python/tests/login_tests.py b/python/tests/login_tests.py index 6985b2d4..a211ceb6 100644 --- a/python/tests/login_tests.py +++ b/python/tests/login_tests.py @@ -39,7 +39,6 @@ import lasso class TestCase(unittest.TestCase): def generateIdpServer(self): idpServer = lasso.Server.new_from_dump(self.generateIdpServerDump()) - self.failUnless(idpServer) return idpServer def generateIdpServerDump(self): @@ -49,12 +48,10 @@ class TestCase(unittest.TestCase): "../../examples/data/idp-private-key.pem", "../../examples/data/idp-crt.pem", lasso.signatureMethodRsaSha1) - self.failUnless(idpServer) - errorCode = idpServer.add_provider( + idpServer.add_provider( "../../examples/data/sp-metadata.xml", "../../examples/data/sp-public-key.pem", "../../examples/data/ca-crt.pem") - self.failUnlessEqual(errorCode, 0) idpServerDump = idpServer.dump() self.failUnless(idpServerDump) idpServer.destroy() @@ -62,7 +59,6 @@ class TestCase(unittest.TestCase): def generateSpServer(self): spServer = lasso.Server.new_from_dump(self.generateSpServerDump()) - self.failUnless(spServer) return spServer def generateSpServerDump(self): @@ -72,12 +68,10 @@ class TestCase(unittest.TestCase): "../../examples/data/sp-private-key.pem", "../../examples/data/sp-crt.pem", lasso.signatureMethodRsaSha1) - self.failUnless(spServer) - errorCode = spServer.add_provider( + spServer.add_provider( "../../examples/data/idp-metadata.xml", "../../examples/data/idp-public-key.pem", "../../examples/data/ca-crt.pem") - self.failUnlessEqual(errorCode, 0) spServerDump = spServer.dump() self.failUnless(spServerDump) spServer.destroy() @@ -94,22 +88,19 @@ class LoginTestCase(TestCase): def idpSingleSignOnForRedirect(self, authnRequestQuery, identityDump, sessionDump): idpServer = self.generateIdpServer() idpLogin = lasso.Login.new(idpServer) - self.failUnless(idpLogin) if identityDump is not None: idpLogin.set_identity_from_dump(identityDump) if sessionDump is not None: idpLogin.set_session_from_dump(sessionDump) - errorCode = idpLogin.init_from_authn_request_msg( + idpLogin.init_from_authn_request_msg( authnRequestQuery, lasso.httpMethodRedirect) - self.failUnlessEqual(errorCode, 0) return idpLogin def idpSingleSignOn_part2ForArtifactRedirect( self, idpLogin, userAuthenticated, authenticationMethod): - errorCode = idpLogin.build_artifact_msg( + idpLogin.build_artifact_msg( userAuthenticated, authenticationMethod, "FIXME: reauthenticateOnOrAfter", lasso.httpMethodRedirect) - self.failUnlessEqual(errorCode, 0) idpIdentityDump = idpLogin.get_identity().dump() self.failUnless(idpIdentityDump) self.failUnless(idpLogin.is_session_dirty()) @@ -130,9 +121,7 @@ class LoginTestCase(TestCase): self.failUnlessEqual(requestType, lasso.requestTypeLogin) idpServer = self.generateIdpServer() idpLogin = lasso.Login.new(idpServer) - self.failUnless(idpLogin) - errorCode = idpLogin.process_request_msg(soapRequestMsg) - self.failUnlessEqual(errorCode, 0) + idpLogin.process_request_msg(soapRequestMsg) artifact = idpLogin.assertionArtifact self.failUnless(artifact) return idpLogin @@ -142,9 +131,7 @@ class LoginTestCase(TestCase): self.failUnlessEqual(requestType, lasso.requestTypeLogout) idpServer = self.generateIdpServer() idpLogout = lasso.Logout.new(idpServer, lasso.providerTypeIdp) - self.failUnless(idpLogout) - errorCode = idpLogout.process_request_msg(soapRequestMsg, lasso.httpMethodSoap) - self.failUnlessEqual(errorCode, 0) + idpLogout.process_request_msg(soapRequestMsg, lasso.httpMethodSoap) nameIdentifier = idpLogout.nameIdentifier self.failUnless(nameIdentifier) return idpLogout @@ -154,8 +141,7 @@ class LoginTestCase(TestCase): idpLogout.set_identity_from_dump(identityDump) if sessionDump is not None: idpLogout.set_session_from_dump(sessionDump) - errorCode = idpLogout.validate_request() - self.failUnlessEqual(errorCode, 0) + idpLogout.validate_request() idpIdentityDump = idpLogout.get_identity().dump() self.failUnless(idpIdentityDump) self.failUnless(idpLogout.is_session_dirty()) @@ -167,8 +153,7 @@ class LoginTestCase(TestCase): # FIXME: Handle the case where there are authentication assertions for other service # providers. self.failUnlessEqual(idpLogout.get_next_providerID(), None) - errorCode = idpLogout.build_response_msg() - self.failUnlessEqual(errorCode, 0) + idpLogout.build_response_msg() soapResponseMsg = idpLogout.msg_body self.failUnless(soapResponseMsg) return idpLogout @@ -176,10 +161,8 @@ class LoginTestCase(TestCase): def spAssertionConsumerForRedirect(self, responseQuery): spServer = self.generateSpServer() spLogin = lasso.Login.new(spServer) - errorCode = spLogin.init_request(responseQuery, lasso.httpMethodRedirect) - self.failUnlessEqual(errorCode, 0) - errorCode = spLogin.build_request_msg() - self.failUnlessEqual(errorCode, 0) + spLogin.init_request(responseQuery, lasso.httpMethodRedirect) + spLogin.build_request_msg() soapEndpoint = spLogin.msg_url self.failUnless(soapEndpoint) soapRequestMsg = spLogin.msg_body @@ -187,8 +170,7 @@ class LoginTestCase(TestCase): return spLogin def spAssertionConsumer_part2(self, spLogin, soapResponseMsg): - errorCode = spLogin.process_response_msg(soapResponseMsg) - self.failUnlessEqual(errorCode, 0) + spLogin.process_response_msg(soapResponseMsg) nameIdentifier = spLogin.nameIdentifier self.failUnless(nameIdentifier) return spLogin @@ -198,8 +180,7 @@ class LoginTestCase(TestCase): spLogin.set_identity_from_dump(identityDump) if sessionDump is not None: spLogin.set_session_from_dump(sessionDump) - errorCode = spLogin.accept_sso() - self.failUnlessEqual(errorCode, 0) + spLogin.accept_sso() spIdentity = spLogin.get_identity() self.failUnless(spIdentity) spIdentityDump = spIdentity.dump() @@ -216,18 +197,15 @@ class LoginTestCase(TestCase): def spLoginForRedirect(self): spServer = self.generateSpServer() spLogin = lasso.Login.new(spServer) - self.failUnless(spLogin) - errorCode = spLogin.init_authn_request( + spLogin.init_authn_request( "https://identity-provider:1998/liberty-alliance/metadata") - self.failUnlessEqual(errorCode, 0) self.failUnlessEqual(spLogin.request_type, lasso.messageTypeAuthnRequest) spLogin.request.set_isPassive(False) spLogin.request.set_nameIDPolicy(lasso.libNameIDPolicyTypeFederated) spLogin.request.set_consent(lasso.libConsentObtained) relayState = "fake" spLogin.request.set_relayState(relayState) - errorCode = spLogin.build_authn_request_msg() - self.failUnlessEqual(errorCode, 0) + spLogin.build_authn_request_msg() authnRequestUrl = spLogin.msg_url self.failUnless(authnRequestUrl) return spLogin @@ -235,15 +213,12 @@ class LoginTestCase(TestCase): def spLogoutForSoap(self, spIdentityDump, spSessionDump): spServer = self.generateSpServer() spLogout = lasso.Logout.new(spServer, lasso.providerTypeSp) - self.failUnless(spLogout) if spIdentityDump is not None: spLogout.set_identity_from_dump(spIdentityDump) if spSessionDump is not None: spLogout.set_session_from_dump(spSessionDump) - errorCode = spLogout.init_request() - self.failUnlessEqual(errorCode, 0) - errorCode = spLogout.build_request_msg() - self.failUnlessEqual(errorCode, 0) + spLogout.init_request() + spLogout.build_request_msg() soapEndpoint = spLogout.msg_url self.failUnless(soapEndpoint) soapRequestMsg = spLogout.msg_body @@ -251,8 +226,7 @@ class LoginTestCase(TestCase): return spLogout def spLogoutForSoap_part2(self, spLogout, soapResponseMsg): - errorCode = spLogout.process_response_msg(soapResponseMsg, lasso.httpMethodSoap) - self.failUnlessEqual(errorCode, 0) + spLogout.process_response_msg(soapResponseMsg, lasso.httpMethodSoap) self.failIf(spLogout.is_identity_dirty()) spIdentity = spLogout.get_identity() self.failUnless(spIdentity) @@ -285,7 +259,6 @@ class LoginTestCase(TestCase): authenticationMethod = lasso.samlAuthenticationMethodPassword idpServer = self.generateIdpServer() idpLogin = lasso.Login.new_from_dump(idpServer, idpLoginDump) - self.failUnless(idpLogin) self.failUnlessEqual(idpLogin.protocolProfile, lasso.loginProtocolProfileBrwsArt) idpLogin = self.idpSingleSignOn_part2ForArtifactRedirect( idpLogin, userAuthenticated, authenticationMethod) @@ -373,7 +346,7 @@ class LoginTestCase(TestCase): idpIdentityDump = """\ <LassoIdentity><LassoFederations><LassoFederation RemoteProviderID="https://service-provider:2003/liberty-alliance/metadata"><LassoLocalNameIdentifier><saml:NameIdentifier xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">NjMxMEMzRTlEMDA4NTNEMEZGNDI1MEM0QzY4NUNBNzY=</saml:NameIdentifier></LassoLocalNameIdentifier></LassoFederation></LassoFederations></LassoIdentity> """.strip() - self.failUnlessEqual(idpLogin.set_identity_from_dump(idpIdentityDump), 0) + idpLogin.set_identity_from_dump(idpIdentityDump) idpSessionDump = """ <LassoSession><LassoAssertions><LassoAssertion RemoteProviderID="https://service-provider:2003/liberty-alliance/metadata"><lib:Assertion xmlns:lib="urn:liberty:iff:2003-08" AssertionID="Q0QxQzNFRTVGRTZEM0M0RjY2MTZDNTEwOUY4MDQzRTI=" MajorVersion="1" MinorVersion="2" IssueInstance="2004-08-02T18:51:43Z" Issuer="https://identity-provider:1998/liberty-alliance/metadata" InResponseTo="OEQ0OEUzODhGRTdGMEVFMzQ5Q0Q0QzYzQjk4MjUwNjQ="><lib:AuthenticationStatement xmlns:lib="urn:liberty:iff:2003-08" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" AuthenticationInstant="2004-08-02T18:51:43Z" ReauthenticateOnOrAfter="FIXME: reauthenticateOnOrAfter"><lib:Subject xmlns:lib="urn:liberty:iff:2003-08"><saml:NameIdentifier xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">NjMxMEMzRTlEMDA4NTNEMEZGNDI1MEM0QzY4NUNBNzY=</saml:NameIdentifier><lib:IDPProvidedNameIdentifier xmlns:lib="urn:liberty:iff:2003-08" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">NjMxMEMzRTlEMDA4NTNEMEZGNDI1MEM0QzY4NUNBNzY=</lib:IDPProvidedNameIdentifier><saml:SubjectConfirmation xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"><saml:SubjectConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:SubjectConfirmationMethod></saml:SubjectConfirmation></lib:Subject></lib:AuthenticationStatement><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> @@ -417,11 +390,10 @@ jFL7NhzvY02aBTLhm22YOLYnlycKm64NGne+siooDCi5tel2/vcx+e+btX9x</X509Certificate> </Signature></lib:Assertion></LassoAssertion></LassoAssertions></LassoSession> """.strip() # " <-- Trick for Emacs Python mode. - self.failUnlessEqual(idpLogin.set_session_from_dump(idpSessionDump), 0) + idpLogin.set_session_from_dump(idpSessionDump) authnRequestQuery = """NameIDPolicy=federated&IsPassive=false&ProviderID=https%3A%2F%2Fservice-provider%3A2003%2Fliberty-alliance%2Fmetadata&consent=urn%3Aliberty%3Aconsent%3Aobtained&IssueInstance=2004-08-02T20%3A33%3A58Z&MinorVersion=2&MajorVersion=1&RequestID=ODVGNkUyMzY5N0MzOTY4QzZGOUYyNzEwRTJGMUNCQTI%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=fnSL5Mgp%2BV%2FtdUuYQJmFKvFY8eEco6sypmejvP4sD0v5ApywV94mUo6BxE29o1KW%0AGFXiMG7puhTwRSlKDo1vlh5iHNqVfjKcbx2XhfoDfplqLir102dyHxB5GedEQvqw%0AbTFtFrB6SnHi5facrYHCn7b58CxAWv9XW4DIfcVCOSma2OOBCm%2FzzCSiZpOtbRk9%0AveQzace41tDW0XLlbRdWpvwsma0yaYSkqYvTV3hmvgkWS5x9lzcm97oME4ywzwbU%0AJAyG8BkqMFoG7FPjwzR8qh7%2FWi%2BCzxxqfczxSGkUZUmsQdxyxazjhDpt1X8i5fan%0AnaF1vWF3GmS6G4t7mrkItA%3D%3D""" method = lasso.httpMethodRedirect - self.failUnlessEqual( - idpLogin.init_from_authn_request_msg(authnRequestQuery, method), 0) + idpLogin.init_from_authn_request_msg(authnRequestQuery, method) self.failIf(idpLogin.must_authenticate()) userAuthenticated = True authenticationMethod = lasso.samlAuthenticationMethodPassword @@ -483,14 +455,12 @@ CGb/HRUx5EPgbIy52G224ITlQWadD1Z6y4PFTowDjkaRVerjUVRJZ/a5QVNsI4Du requestType = lasso.get_request_type_from_soap_msg(soapRequestMessage) self.failUnlessEqual(requestType, lasso.requestTypeLogout) idpLogout = lasso.Logout.new(idpServer, lasso.providerTypeIdp) - self.failUnless(idpLogout) - self.failUnlessEqual( - idpLogout.process_request_msg(soapRequestMessage, lasso.httpMethodSoap), 0) + idpLogout.process_request_msg(soapRequestMessage, lasso.httpMethodSoap) self.failUnless(idpLogout.nameIdentifier) idpIdentityDump = """\ <LassoIdentity><LassoFederations><LassoFederation RemoteProviderID="https://service-provider:2003/liberty-alliance/metadata"><LassoLocalNameIdentifier><saml:NameIdentifier xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">QkM3M0M4MTYxREQzNEYwNEI4M0I4MUVERDUyQUUyMjA=</saml:NameIdentifier></LassoLocalNameIdentifier></LassoFederation></LassoFederations></LassoIdentity> """.strip() - self.failUnlessEqual(idpLogout.set_identity_from_dump(idpIdentityDump), 0) + idpLogout.set_identity_from_dump(idpIdentityDump) self.failUnlessEqual(idpLogout.get_identity().dump(), idpIdentityDump) idpSessionDump = """ <LassoSession><LassoAssertions><LassoAssertion RemoteProviderID="https://service-provider:2003/liberty-alliance/metadata"><lib:Assertion xmlns:lib="urn:liberty:iff:2003-08" AssertionID="QUVENUJCNzRFOUQ3MEZFNEYzNUUwQTA5OTRGMEYzMDg=" MajorVersion="1" MinorVersion="2" IssueInstance="2004-08-03T11:55:55Z" Issuer="https://identity-provider:1998/liberty-alliance/metadata" InResponseTo="N0VEQzE0QUE1NTYwQTAzRjk4Njk3Q0JCRUU0RUZCQkY="><lib:AuthenticationStatement xmlns:lib="urn:liberty:iff:2003-08" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" AuthenticationInstant="2004-08-03T11:55:55Z" ReauthenticateOnOrAfter="FIXME: reauthenticateOnOrAfter"><lib:Subject xmlns:lib="urn:liberty:iff:2003-08"><saml:NameIdentifier xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">QkM3M0M4MTYxREQzNEYwNEI4M0I4MUVERDUyQUUyMjA=</saml:NameIdentifier><lib:IDPProvidedNameIdentifier xmlns:lib="urn:liberty:iff:2003-08" NameQualifier="https://identity-provider:1998/liberty-alliance/metadata" Format="urn:liberty:iff:nameid:federated">QkM3M0M4MTYxREQzNEYwNEI4M0I4MUVERDUyQUUyMjA=</lib:IDPProvidedNameIdentifier><saml:SubjectConfirmation xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"><saml:SubjectConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:SubjectConfirmationMethod></saml:SubjectConfirmation></lib:Subject></lib:AuthenticationStatement><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> @@ -535,15 +505,15 @@ jFL7NhzvY02aBTLhm22YOLYnlycKm64NGne+siooDCi5tel2/vcx+e+btX9x</X509Certificate> </Signature></lib:Assertion></LassoAssertion></LassoAssertions></LassoSession> """.strip() # " <-- Trick for Emacs Python mode. - self.failUnlessEqual(idpLogout.set_session_from_dump(idpSessionDump), 0) + idpLogout.set_session_from_dump(idpSessionDump) self.failUnlessEqual(idpLogout.get_session().dump(), idpSessionDump) - self.failUnlessEqual(idpLogout.validate_request(), 0) + idpLogout.validate_request() self.failIf(idpLogout.is_identity_dirty()) self.failUnless(idpLogout.is_session_dirty()) idpSessionDump = idpLogout.get_session().dump() self.failUnless(idpSessionDump) self.failIf(idpLogout.get_next_providerID()) - self.failUnlessEqual(idpLogout.build_response_msg(), 0) + idpLogout.build_response_msg() soapResponseMsg = idpLogout.msg_body self.failUnless(soapResponseMsg) @@ -602,8 +572,8 @@ jFL7NhzvY02aBTLhm22YOLYnlycKm64NGne+siooDCi5tel2/vcx+e+btX9x</X509Certificate> # " <-- Trick for Emacs Python mode. spLogout.set_session_from_dump(spSessionDump) - self.failUnlessEqual(spLogout.init_request(), 0) - self.failUnlessEqual(spLogout.build_request_msg(), 0) + spLogout.init_request() + spLogout.build_request_msg() self.failUnless(spLogout.msg_url) self.failUnless(spLogout.msg_body) self.failUnless(spLogout.nameIdentifier) @@ -611,8 +581,7 @@ jFL7NhzvY02aBTLhm22YOLYnlycKm64NGne+siooDCi5tel2/vcx+e+btX9x</X509Certificate> soapResponseMessage = """\ <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><lib:LogoutResponse xmlns:lib="urn:liberty:iff:2003-08" ResponseID="NjcyNDYxQ0FCRTQwMUE0NjE4MzlFQjFDOTI2MTc3NjE=" MajorVersion="1" MinorVersion="2" IssueInstance="2004-08-04T00:03:20Z" InResponseTo="MzNCOTRBMjRCMDExN0MxODc1MUI5NjMwQjlCMTg1NzM=" Recipient="https://service-provider:2003/liberty-alliance/metadata"><lib:ProviderID>https://identity-provider:1998/liberty-alliance/metadata</lib:ProviderID><samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"><samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" Value="Samlp:Success"/></samlp:Status></lib:LogoutResponse></soap-env:Body></soap-env:Envelope> """.strip() - self.failUnlessEqual( - spLogout.process_response_msg(soapResponseMessage, lasso.httpMethodSoap), 0) + spLogout.process_response_msg(soapResponseMessage, lasso.httpMethodSoap) self.failIf(spLogout.is_identity_dirty()) self.failUnless(spLogout.is_session_dirty()) spSessionDump = spLogout.get_session().dump() |
