in idwsf2_tests.py, merge test case for metadata registering, add test case for failure
This commit is contained in:
parent
0ff8c53f44
commit
b0a3c22d39
|
@ -42,7 +42,8 @@ try:
|
||||||
except NameError:
|
except NameError:
|
||||||
dataDir = os.path.join(os.environ['TOP_SRCDIR'], 'tests', 'data')
|
dataDir = os.path.join(os.environ['TOP_SRCDIR'], 'tests', 'data')
|
||||||
|
|
||||||
disco_soap_url = 'http://idp1/soapEndpoint'
|
idpSoapEndpoint = 'http://idp1/soapEndpoint'
|
||||||
|
spSoapEndpoint = 'http://sp1/soapEndpoint'
|
||||||
|
|
||||||
class IdWsf2TestCase(unittest.TestCase):
|
class IdWsf2TestCase(unittest.TestCase):
|
||||||
def getWspServer(self):
|
def getWspServer(self):
|
||||||
|
@ -87,22 +88,21 @@ class IdWsf2TestCase(unittest.TestCase):
|
||||||
def metadataRegister(self, wsp, idp):
|
def metadataRegister(self, wsp, idp):
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
||||||
abstract = 'Personal Profile service'
|
abstract = 'Personal Profile service'
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
wsp_disco.initMetadataRegister()
|
||||||
wsp_disco.addSimpleServiceMetadata(
|
wsp_disco.addSimpleServiceMetadata(
|
||||||
service_types = ('urn:liberty:id-sis-pp:2005-05',),
|
service_types = ('urn:liberty:id-sis-pp:2005-05',),
|
||||||
abstract = abstract, provider_id = wsp.providerIds[0],
|
abstract = abstract, provider_id = wsp.providerIds[0],
|
||||||
address = soapEndpoint)
|
address = idpSoapEndpoint)
|
||||||
wsp_disco.buildRequestMsg()
|
wsp_disco.buildRequestMsg()
|
||||||
|
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
idp_disco = lasso.IdWsf2Discovery(idp)
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
||||||
idp_disco.validateRequest()
|
idp_disco.validateRequest()
|
||||||
assert(len(idp_disco.metadatas) == 1)
|
self.failUnlessEqual(len(idp_disco.metadatas), 1)
|
||||||
idp_disco.buildResponseMsg()
|
idp_disco.buildResponseMsg()
|
||||||
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
||||||
assert(len(wsp_disco.metadatas) == 1)
|
self.failUnlessEqual(len(wsp_disco.metadatas), 1)
|
||||||
assert(wsp_disco.metadatas[0].svcMDID == wsp_disco.response.svcMDID[0])
|
self.failUnlessEqual(wsp_disco.metadatas[0].svcMDID, wsp_disco.response.svcMDID[0])
|
||||||
return idp, wsp_disco.metadatas[0]
|
return idp, wsp_disco.metadatas[0]
|
||||||
|
|
||||||
def login(self, sp, idp, sp_identity_dump=None, sp_session_dump=None,
|
def login(self, sp, idp, sp_identity_dump=None, sp_session_dump=None,
|
||||||
|
@ -123,7 +123,7 @@ class IdWsf2TestCase(unittest.TestCase):
|
||||||
idp_login.processAuthnRequestMsg(query)
|
idp_login.processAuthnRequestMsg(query)
|
||||||
idp_login.validateRequestMsg(True, True)
|
idp_login.validateRequestMsg(True, True)
|
||||||
idp_login.buildAssertion(lasso.SAML_AUTHENTICATION_METHOD_PASSWORD, None, None, None, None)
|
idp_login.buildAssertion(lasso.SAML_AUTHENTICATION_METHOD_PASSWORD, None, None, None, None)
|
||||||
idp_login.idwsf2AddDiscoveryBootstrapEpr(url = disco_soap_url, abstract = 'Discovery Service', security_mech_id = lasso.SECURITY_MECH_BEARER)
|
idp_login.idwsf2AddDiscoveryBootstrapEpr(url = idpSoapEndpoint, abstract = 'Discovery Service', security_mech_id = lasso.SECURITY_MECH_BEARER)
|
||||||
idp_login.buildArtifactMsg(lasso.HTTP_METHOD_ARTIFACT_GET)
|
idp_login.buildArtifactMsg(lasso.HTTP_METHOD_ARTIFACT_GET)
|
||||||
artifact_message = idp_login.artifactMessage
|
artifact_message = idp_login.artifactMessage
|
||||||
|
|
||||||
|
@ -153,193 +153,227 @@ class IdWsf2TestCase(unittest.TestCase):
|
||||||
return sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump, sp_login.idwsf2GetDiscoveryBootstrapEpr()
|
return sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump, sp_login.idwsf2GetDiscoveryBootstrapEpr()
|
||||||
|
|
||||||
|
|
||||||
class MetadataRegisterTestCase(IdWsf2TestCase):
|
class MetadataTestCase(IdWsf2TestCase):
|
||||||
def test01(self):
|
def test01(self):
|
||||||
"""Init metadata registration request"""
|
"""Test metadata registration on the IdP"""
|
||||||
|
|
||||||
idp = self.getIdpServer()
|
idp = self.getIdpServer()
|
||||||
wsp = self.getWspServer()
|
wsp = self.getWspServer()
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
||||||
|
|
||||||
|
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
||||||
wsp_disco.setEpr(dst_epr)
|
wsp_disco.setEpr(dst_epr)
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
abstract = 'Personal Profile service'
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
try:
|
|
||||||
wsp_disco.initMetadataRegister()
|
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract,
|
|
||||||
provider_id = wsp.providerIds[0], address = soapEndpoint)
|
|
||||||
self.failUnless(wsp_disco.request is not None)
|
|
||||||
self.failUnlessEqual(len(wsp_disco.metadatas), 1)
|
|
||||||
except lasso.Error, e:
|
|
||||||
self.fail(e)
|
|
||||||
|
|
||||||
|
|
||||||
def test02(self):
|
|
||||||
"""Build metadata registration request"""
|
|
||||||
idp = self.getIdpServer()
|
|
||||||
wsp = self.getWspServer()
|
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
|
||||||
wsp_disco.setEpr(dst_epr)
|
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
wsp_disco.initMetadataRegister()
|
||||||
|
self.failUnless(wsp_disco.request is not None)
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
wsp_disco.addSimpleServiceMetadata(service_types =
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
(lasso.PP11_HREF,), abstract = abstract,
|
||||||
wsp_disco.buildRequestMsg()
|
provider_id = wsp.providerId, address = spSoapEndpoint,
|
||||||
|
security_mech_ids = (lasso.SECURITY_MECH_BEARER,))
|
||||||
self.failUnless(wsp_disco.msgUrl, 'missing soap URL target')
|
self.failUnlessEqual(len(wsp_disco.metadatas), 1)
|
||||||
self.failUnless(wsp_disco.msgBody, 'missing soap request')
|
metadata = wsp_disco.metadatas[0]
|
||||||
|
self.failUnlessEqual(metadata.abstract, abstract)
|
||||||
def test03(self):
|
self.failUnlessEqual(metadata.providerId, wsp.providerId)
|
||||||
"""Check metadata registration request type"""
|
self.failUnlessEqual(len(metadata.serviceContext), 1)
|
||||||
idp = self.getIdpServer()
|
self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1)
|
||||||
wsp = self.getWspServer()
|
self.failUnlessEqual(metadata.serviceContext[0].serviceType[0],
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
lasso.PP11_HREF)
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1)
|
||||||
wsp_disco.setEpr(dst_epr)
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].address),
|
||||||
abstract = 'Personal Profile service'
|
1)
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0],
|
||||||
wsp_disco.initMetadataRegister()
|
spSoapEndpoint)
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
self.failUnlessEqual(
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
len(metadata.serviceContext[0].endpointContext[0].securityMechId),
|
||||||
wsp_disco.buildRequestMsg()
|
1)
|
||||||
|
self.failUnlessEqual(
|
||||||
request_type = lasso.getRequestTypeFromSoapMsg(wsp_disco.msgBody)
|
metadata.serviceContext[0].endpointContext[0].securityMechId[0],
|
||||||
self.failUnlessEqual(request_type, lasso.REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER,
|
lasso.SECURITY_MECH_BEARER)
|
||||||
'wrong request type in metadata_register : %s' % request_type)
|
self.failUnless(metadata.svcMDID is None)
|
||||||
|
|
||||||
def test04(self):
|
|
||||||
"""Process metadata registration request"""
|
|
||||||
idp = self.getIdpServer()
|
|
||||||
wsp = self.getWspServer()
|
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
|
||||||
wsp_disco.setEpr(dst_epr)
|
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
|
||||||
wsp_disco.buildRequestMsg()
|
|
||||||
|
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
|
||||||
try:
|
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
|
||||||
self.failUnlessEqual(idp_disco.getRequestType(), lasso.IDWSF2_DISCOVERY_REQUEST_TYPE_MD_REGISTER)
|
|
||||||
except lasso.Error, e:
|
|
||||||
self.fail(e)
|
|
||||||
|
|
||||||
try:
|
|
||||||
idp_disco.checkSecurityMechanism(lasso.SECURITY_MECH_BEARER)
|
|
||||||
except lasso.Error, e:
|
|
||||||
self.fail(e)
|
|
||||||
|
|
||||||
def test05(self):
|
|
||||||
"""Check metadata registration on the Discovery service"""
|
|
||||||
idp = self.getIdpServer()
|
|
||||||
wsp = self.getWspServer()
|
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
|
||||||
wsp_disco.setEpr(dst_epr)
|
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
|
||||||
wsp_disco.buildRequestMsg()
|
wsp_disco.buildRequestMsg()
|
||||||
|
self.failUnlessEqual(wsp_disco.msgUrl, idpSoapEndpoint)
|
||||||
|
self.failUnless(wsp_disco.msgBody is not None)
|
||||||
|
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
idp_disco = lasso.IdWsf2Discovery(idp)
|
||||||
|
self.failUnless(idp_disco is not None)
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
||||||
|
self.failUnless(idp_disco.request is not None)
|
||||||
try:
|
self.failUnlessEqual(len(idp_disco.request.svcMD), 1)
|
||||||
idp_disco.validateRequest()
|
self.failUnless(idp_disco.request.svcMD[0].svcMDID is None)
|
||||||
except lasso.Error, e:
|
idp_disco.validateRequest()
|
||||||
self.fail(e)
|
self.failUnless(idp_disco.response is not None)
|
||||||
|
|
||||||
self.failUnlessEqual(len(idp_disco.metadatas), 1)
|
self.failUnlessEqual(len(idp_disco.metadatas), 1)
|
||||||
|
metadata = idp_disco.metadatas[0]
|
||||||
def test06(self):
|
self.failUnlessEqual(metadata.abstract, abstract)
|
||||||
"""Build metadata registration response"""
|
self.failUnlessEqual(metadata.providerId, wsp.providerId)
|
||||||
idp = self.getIdpServer()
|
self.failUnlessEqual(len(metadata.serviceContext), 1)
|
||||||
wsp = self.getWspServer()
|
self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1)
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
self.failUnlessEqual(metadata.serviceContext[0].serviceType[0],
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
lasso.PP11_HREF)
|
||||||
wsp_disco.setEpr(dst_epr)
|
self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1)
|
||||||
|
self.failUnlessEqual(
|
||||||
abstract = 'Personal Profile service'
|
len(metadata.serviceContext[0].endpointContext[0].address),
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
1)
|
||||||
wsp_disco.initMetadataRegister()
|
self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0],
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
spSoapEndpoint)
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
self.failUnlessEqual(
|
||||||
wsp_disco.buildRequestMsg()
|
len(metadata.serviceContext[0].endpointContext[0].securityMechId),
|
||||||
|
1)
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
self.failUnlessEqual(
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
metadata.serviceContext[0].endpointContext[0].securityMechId[0],
|
||||||
idp_disco.validateRequest()
|
lasso.SECURITY_MECH_BEARER)
|
||||||
try:
|
|
||||||
idp_disco.buildResponseMsg()
|
|
||||||
except lasso.Error, e:
|
|
||||||
self.fail(e)
|
|
||||||
|
|
||||||
self.failUnless(idp_disco.msgBody, 'missing soap answer')
|
|
||||||
|
|
||||||
def test07(self):
|
|
||||||
"""Process metadata registration response"""
|
|
||||||
idp = self.getIdpServer()
|
|
||||||
wsp = self.getWspServer()
|
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
|
||||||
wsp_disco.setEpr(dst_epr)
|
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
|
||||||
wsp_disco.buildRequestMsg()
|
|
||||||
|
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
|
||||||
idp_disco.validateRequest()
|
|
||||||
idp_disco.buildResponseMsg()
|
|
||||||
|
|
||||||
try:
|
|
||||||
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
|
||||||
except lasso.Error, e:
|
|
||||||
self.fail(e)
|
|
||||||
|
|
||||||
def test08(self):
|
|
||||||
"""Check metadata registration on the WSP"""
|
|
||||||
idp = self.getIdpServer()
|
|
||||||
wsp = self.getWspServer()
|
|
||||||
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
|
||||||
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
|
||||||
wsp_disco.setEpr(dst_epr)
|
|
||||||
|
|
||||||
abstract = 'Personal Profile service'
|
|
||||||
soapEndpoint = 'http://idp1/soapEndpoint'
|
|
||||||
wsp_disco.initMetadataRegister()
|
|
||||||
wsp_disco.addSimpleServiceMetadata(service_types =
|
|
||||||
('urn:liberty:id-sis-pp:2005-05',), abstract = abstract, provider_id = wsp.providerIds[0], address = soapEndpoint)
|
|
||||||
wsp_disco.buildRequestMsg()
|
|
||||||
|
|
||||||
idp_disco = lasso.IdWsf2Discovery(idp)
|
|
||||||
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
|
||||||
idp_disco.validateRequest()
|
|
||||||
idp_disco.buildResponseMsg()
|
idp_disco.buildResponseMsg()
|
||||||
|
self.failUnless(metadata.svcMDID is not None)
|
||||||
|
self.failUnless(idp_disco.msgUrl is None)
|
||||||
|
self.failUnless(idp_disco.msgBody is not None)
|
||||||
|
|
||||||
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
||||||
|
|
||||||
self.failUnless(len(wsp_disco.metadatas) == 1, 'missing svcMDID')
|
self.failUnless(len(wsp_disco.metadatas) == 1, 'missing svcMDID')
|
||||||
self.failUnless(wsp_disco.metadatas[0].svcMDID, 'missing svcMDID')
|
self.failUnless(wsp_disco.metadatas[0].svcMDID, 'missing svcMDID')
|
||||||
|
|
||||||
|
def test01(self):
|
||||||
|
"""Test metadata register with redirection"""
|
||||||
|
idp = self.getIdpServer()
|
||||||
|
wsp = self.getWspServer()
|
||||||
|
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
||||||
|
|
||||||
|
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
||||||
|
wsp_disco.setEpr(dst_epr)
|
||||||
|
|
||||||
|
abstract = 'Personal Profile service'
|
||||||
|
wsp_disco.initMetadataRegister()
|
||||||
|
self.failUnless(wsp_disco.request is not None)
|
||||||
|
wsp_disco.addSimpleServiceMetadata(service_types =
|
||||||
|
(lasso.PP11_HREF,), abstract = abstract,
|
||||||
|
provider_id = wsp.providerId, address = spSoapEndpoint,
|
||||||
|
security_mech_ids = (lasso.SECURITY_MECH_BEARER,))
|
||||||
|
self.failUnlessEqual(len(wsp_disco.metadatas), 1)
|
||||||
|
metadata = wsp_disco.metadatas[0]
|
||||||
|
self.failUnlessEqual(metadata.abstract, abstract)
|
||||||
|
self.failUnlessEqual(metadata.providerId, wsp.providerId)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext), 1)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].serviceType[0],
|
||||||
|
lasso.PP11_HREF)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].address),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0],
|
||||||
|
spSoapEndpoint)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].securityMechId),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
metadata.serviceContext[0].endpointContext[0].securityMechId[0],
|
||||||
|
lasso.SECURITY_MECH_BEARER)
|
||||||
|
self.failUnless(metadata.svcMDID is None)
|
||||||
|
wsp_disco.buildRequestMsg()
|
||||||
|
self.failUnlessEqual(wsp_disco.msgUrl, idpSoapEndpoint)
|
||||||
|
self.failUnless(wsp_disco.msgBody is not None)
|
||||||
|
|
||||||
|
idp_disco = lasso.IdWsf2Discovery(idp)
|
||||||
|
self.failUnless(idp_disco is not None)
|
||||||
|
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
||||||
|
self.failUnless(idp_disco.request is not None)
|
||||||
|
self.failUnlessEqual(len(idp_disco.request.svcMD), 1)
|
||||||
|
self.failUnless(idp_disco.request.svcMD[0].svcMDID is None)
|
||||||
|
idp_disco.validateRequest()
|
||||||
|
self.failUnless(idp_disco.response is not None)
|
||||||
|
self.failUnlessEqual(len(idp_disco.metadatas), 1)
|
||||||
|
metadata = idp_disco.metadatas[0]
|
||||||
|
self.failUnlessEqual(metadata.abstract, abstract)
|
||||||
|
self.failUnlessEqual(metadata.providerId, wsp.providerId)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext), 1)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].serviceType[0],
|
||||||
|
lasso.PP11_HREF)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].address),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0],
|
||||||
|
spSoapEndpoint)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].securityMechId),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
metadata.serviceContext[0].endpointContext[0].securityMechId[0],
|
||||||
|
lasso.SECURITY_MECH_BEARER)
|
||||||
|
idp_disco.buildResponseMsg()
|
||||||
|
self.failUnless(metadata.svcMDID is not None)
|
||||||
|
self.failUnless(idp_disco.msgUrl is None)
|
||||||
|
self.failUnless(idp_disco.msgBody is not None)
|
||||||
|
|
||||||
|
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
||||||
|
|
||||||
|
self.failUnless(len(wsp_disco.metadatas) == 1, 'missing svcMDID')
|
||||||
|
self.failUnless(wsp_disco.metadatas[0].svcMDID, 'missing svcMDID')
|
||||||
|
|
||||||
|
def test02(self):
|
||||||
|
"Test failure by IdP for register request"
|
||||||
|
idp = self.getIdpServer()
|
||||||
|
wsp = self.getWspServer()
|
||||||
|
wsp_identity_dump, wsp_session_dump, idp_identity_dump, idp_session_dump, dst_epr = self.login(wsp, idp)
|
||||||
|
|
||||||
|
wsp_disco = lasso.IdWsf2Discovery(wsp)
|
||||||
|
wsp_disco.setEpr(dst_epr)
|
||||||
|
|
||||||
|
abstract = 'Personal Profile service'
|
||||||
|
wsp_disco.initMetadataRegister()
|
||||||
|
self.failUnless(wsp_disco.request is not None)
|
||||||
|
wsp_disco.addSimpleServiceMetadata(service_types =
|
||||||
|
(lasso.PP11_HREF,), abstract = abstract,
|
||||||
|
provider_id = wsp.providerId, address = spSoapEndpoint,
|
||||||
|
security_mech_ids= (lasso.SECURITY_MECH_BEARER,))
|
||||||
|
self.failUnlessEqual(len(wsp_disco.metadatas), 1)
|
||||||
|
metadata = wsp_disco.metadatas[0]
|
||||||
|
self.failUnlessEqual(metadata.abstract, abstract)
|
||||||
|
self.failUnlessEqual(metadata.providerId, wsp.providerId)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].serviceType), 1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].serviceType[0],
|
||||||
|
lasso.PP11_HREF)
|
||||||
|
self.failUnlessEqual(len(metadata.serviceContext[0].endpointContext), 1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].address),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(metadata.serviceContext[0].endpointContext[0].address[0],
|
||||||
|
spSoapEndpoint)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
len(metadata.serviceContext[0].endpointContext[0].securityMechId),
|
||||||
|
1)
|
||||||
|
self.failUnlessEqual(
|
||||||
|
metadata.serviceContext[0].endpointContext[0].securityMechId[0],
|
||||||
|
lasso.SECURITY_MECH_BEARER)
|
||||||
|
self.failUnless(metadata.svcMDID is None)
|
||||||
|
wsp_disco.buildRequestMsg()
|
||||||
|
self.failUnlessEqual(wsp_disco.msgUrl, idpSoapEndpoint)
|
||||||
|
self.failUnless(wsp_disco.msgBody is not None)
|
||||||
|
print wsp_disco.dump()
|
||||||
|
|
||||||
|
idp_disco = lasso.IdWsf2Discovery(idp)
|
||||||
|
self.failUnless(idp_disco is not None)
|
||||||
|
idp_disco.processRequestMsg(wsp_disco.msgBody)
|
||||||
|
self.failUnless(idp_disco.request is not None)
|
||||||
|
idp_disco.failRequest(lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED, lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN)
|
||||||
|
self.failUnless(idp_disco.response is not None)
|
||||||
|
self.failUnless(idp_disco.response.status is not None)
|
||||||
|
self.failUnless(idp_disco.response.status.code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FAILED)
|
||||||
|
self.failUnlessEqual(len(idp_disco.response.status.status), 1)
|
||||||
|
self.failUnless(idp_disco.response.status.status[0].code is not lasso.IDWSF2_DISCOVERY_STATUS_CODE_FORBIDDEN)
|
||||||
|
idp_disco.buildResponseMsg()
|
||||||
|
self.failUnless(idp_disco.msgUrl is None)
|
||||||
|
self.failUnless(idp_disco.msgBody is not None)
|
||||||
|
|
||||||
|
try:
|
||||||
|
wsp_disco.processResponseMsg(idp_disco.msgBody)
|
||||||
|
except lasso.Idwsf2DiscoveryForbiddenError:
|
||||||
|
pass
|
||||||
|
except lasso.Error, e:
|
||||||
|
self.fail(e)
|
||||||
|
|
||||||
class MetadataAssociationAddTestCase(IdWsf2TestCase):
|
class MetadataAssociationAddTestCase(IdWsf2TestCase):
|
||||||
def test01(self):
|
def test01(self):
|
||||||
"""Init metadata association add request"""
|
"""Init metadata association add request"""
|
||||||
|
@ -1726,13 +1760,13 @@ class DataServiceQueryTestCase(IdWsf2TestCase):
|
||||||
self.failUnless(email_strings[1] == email2)
|
self.failUnless(email_strings[1] == email2)
|
||||||
|
|
||||||
|
|
||||||
metadataRegisterSuite = unittest.makeSuite(MetadataRegisterTestCase, 'test')
|
metadataSuite = unittest.makeSuite(MetadataTestCase, 'test')
|
||||||
metadataAssociationAddSuite = unittest.makeSuite(MetadataAssociationAddTestCase, 'test')
|
#metadataAssociationAddSuite = unittest.makeSuite(MetadataAssociationAddTestCase, 'test')
|
||||||
#discoveryQuerySuite = unittest.makeSuite(DiscoveryQueryTestCase, 'test')
|
#discoveryQuerySuite = unittest.makeSuite(DiscoveryQueryTestCase, 'test')
|
||||||
#dataServiceQuerySuite = unittest.makeSuite(DataServiceQueryTestCase, 'test')
|
#dataServiceQuerySuite = unittest.makeSuite(DataServiceQueryTestCase, 'test')
|
||||||
|
|
||||||
allTests = unittest.TestSuite((metadataRegisterSuite,
|
allTests = unittest.TestSuite((metadataSuite,))
|
||||||
metadataAssociationAddSuite,)) # discoveryQuerySuite, dataServiceQuerySuite))
|
# metadataAssociationAddSuite,)) # discoveryQuerySuite, dataServiceQuerySuite))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(not unittest.TextTestRunner(verbosity = 2).run(allTests).wasSuccessful())
|
sys.exit(not unittest.TextTestRunner(verbosity = 2).run(allTests).wasSuccessful())
|
||||||
|
|
Loading…
Reference in New Issue