• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

contrib/opal/ZSI/test/wsdl2py/test_EchoWSAddr200403.py

00001 #!/usr/bin/env python
00002 ############################################################################
00003 # Joshua R. Boverhof, LBNL
00004 # See LBNLCopyright for copyright notice!
00005 ###########################################################################
00006 import os, sys, unittest
00007 from ServiceTest import main, ServiceTestCase, ServiceTestSuite
00008 from ZSI import FaultException, TC
00009 from ZSI.schema import GED, GTD
00010 
00011 """
00012 Unittest 
00013 
00014 WSDL:  ../../samples/Echo/Echo.wsdl
00015 """
00016 
00017 # General targets
00018 def dispatch():
00019     """Run all dispatch tests"""
00020     suite = ServiceTestSuite()
00021     suite.addTest(unittest.makeSuite(EchoTestCase, 'test_dispatch'))
00022     return suite
00023 
00024 def local():
00025     """Run all local tests"""
00026     suite = ServiceTestSuite()
00027     suite.addTest(unittest.makeSuite(EchoTestCase, 'test_local'))
00028     return suite
00029 
00030 def net():
00031     """Run all network tests"""
00032     suite = ServiceTestSuite()
00033     suite.addTest(unittest.makeSuite(EchoTestCase, 'test_net'))
00034     return suite
00035     
00036 def all():
00037     """Run all tests"""
00038     suite = ServiceTestSuite()
00039     suite.addTest(unittest.makeSuite(EchoTestCase, 'test_'))
00040     return suite
00041 
00042 
00043 class EchoTestCase(ServiceTestCase):
00044     name = "test_EchoWSAddr200403"
00045     client_file_name = "EchoWSAddr200403Server_client.py"
00046     types_file_name  = "EchoWSAddr200403Server_types.py"
00047     server_file_name = "EchoWSAddr200403Server_server.py"
00048 
00049     def __init__(self, methodName):
00050         ServiceTestCase.__init__(self, methodName)
00051         self.wsdl2py_args.append('-ab')
00052 
00053     def getPortKWArgs(self):
00054         kw = ServiceTestCase.getPortKWArgs(self)
00055         kw['wsAddressURI'] = 'http://schemas.xmlsoap.org/ws/2004/03/addressing'
00056         return kw
00057 
00058     def test_local_Echo(self):
00059         msg = self.client_module.EchoRequest()
00060         rsp = self.client_module.EchoResponse()
00061 
00062     def test_dispatch_Echo(self):
00063         loc = self.client_module.EchoWSAddr200403ServerLocator()
00064         port = loc.getport(**self.getPortKWArgs())
00065         
00066         msg = self.client_module.EchoRequest()
00067         msg.EchoIn = 'bla bla bla'
00068         rsp = port.Echo(msg)
00069         self.failUnless(rsp.EchoResult == msg.EchoIn, "Bad Echo")
00070 
00071     def test_dispatch_Echo_MIH_EPR(self):
00072         epr = GED('http://schemas.xmlsoap.org/ws/2004/03/addressing','EndpointReference').pyclass()
00073         epr.Address = 'urn:whatever'
00074 
00075         loc = self.client_module.EchoWSAddr200403ServerLocator()
00076         port = loc.getport(endPointReference=epr, **self.getPortKWArgs())
00077 
00078         msg = self.client_module.EchoRequest()
00079         msg.EchoIn = 1
00080         rsp = port.Echo(msg)
00081         self.failUnless(rsp.EchoResult == msg.EchoIn, "Bad Echo")
00082 
00083     def test_dispatch_Echo_MIH_EPR2(self):
00084         epr = GED('http://schemas.xmlsoap.org/ws/2004/03/addressing','EndpointReference').pyclass()
00085         epr.Address = 'urn:whatever'
00086         epr.ReferenceProperties = epr.new_ReferenceProperties()
00087 
00088         loc = self.client_module.EchoWSAddr200403ServerLocator()
00089         port = loc.getport(endPointReference=epr, **self.getPortKWArgs())
00090 
00091         msg = self.client_module.EchoRequest()
00092         msg.EchoIn = 1
00093         rsp = port.Echo(msg)
00094         self.failUnless(rsp.EchoResult == msg.EchoIn, "Bad Echo")
00095 
00096     def test_dispatch_Echo_MIH_EPR3_BadHeader(self):
00097         """Unqualified element "mystr" in Header
00098         """
00099         epr = GED('http://schemas.xmlsoap.org/ws/2004/03/addressing','EndpointReference').pyclass()
00100         epr.Address = 'urn:whatever'
00101         epr.ReferenceProperties = epr.new_ReferenceProperties()
00102         class Xstr(str): 
00103             typecode = TC.String('mystr')
00104 
00105         epr.ReferenceProperties.Any = [Xstr('whatever'),]
00106 
00107         loc = self.client_module.EchoWSAddr200403ServerLocator()
00108         self._setUpDispatch()
00109         port = loc.getport(endPointReference=epr, **self.getPortKWArgs())
00110 
00111         msg = self.client_module.EchoRequest()
00112         self.failUnlessRaises(FaultException, port.Echo,msg)
00113 
00114     def test_dispatch_Echo_MIH_EPR3(self):
00115         epr = GED('http://schemas.xmlsoap.org/ws/2004/03/addressing','EndpointReference').pyclass()
00116         epr.Address = 'urn:whatever'
00117         epr.ReferenceProperties = epr.new_ReferenceProperties()
00118         class Xstr(str): 
00119             typecode = TC.String(('urn:josh','mystr'))
00120 
00121         epr.ReferenceProperties.Any = [Xstr('whatever'),]
00122 
00123         loc = self.client_module.EchoWSAddr200403ServerLocator()
00124         self._setUpDispatch()
00125         port = loc.getport(endPointReference=epr, **self.getPortKWArgs())
00126 
00127         msg = self.client_module.EchoRequest()
00128         epr2 = GTD('http://schemas.xmlsoap.org/ws/2004/03/addressing','EndpointReferenceType')(None).pyclass()
00129         epr2.Address = epr.Address
00130         epr2.ReferenceProperties = epr.ReferenceProperties
00131 
00132         msg.EchoIn = epr2
00133         rsp = port.Echo(msg)
00134         self.failUnless(rsp.EchoResult.Address == msg.EchoIn.Address, "Bad Echo")
00135         self.failUnless(rsp.EchoResult.ReferenceProperties.Any == msg.EchoIn.ReferenceProperties.Any, "Bad Echo")
00136 
00137 
00138 if __name__ == "__main__" :
00139     main()
00140 

Generated on Wed Oct 20 2010 11:12:17 for APBS by  doxygen 1.7.2