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

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

00001 #!/usr/bin/env python
00002 ############################################################################
00003 # Joshua R. Boverhof, LBNL
00004 # See LBNLCopyright for copyright notice!
00005 ###########################################################################
00006 import sys, unittest
00007 from ServiceTest import main, ServiceTestCase, ServiceTestSuite
00008 import ZSI
00009 from ZSI import FaultException
00010 """
00011 Unittest for contacting the OPC XML-DA Service.
00012 
00013 WSDL:  http://tswinc.us/XMLDADemo/ts_sim/OpcDaGateway.asmx?WSDL
00014 """
00015 
00016 # General targets
00017 def dispatch():
00018     """Run all dispatch tests"""
00019     suite = ServiceTestSuite()
00020     suite.addTest(unittest.makeSuite(OPCServiceTest, 'test_dispatch'))
00021     return suite
00022 
00023 def local():
00024     """Run all local tests"""
00025     suite = ServiceTestSuite()
00026     suite.addTest(unittest.makeSuite(OPCServiceTest, 'test_local'))
00027     return suite
00028 
00029 def net():
00030     """Run all network tests"""
00031     suite = ServiceTestSuite()
00032     suite.addTest(unittest.makeSuite(OPCServiceTest, 'test_net'))
00033     return suite
00034     
00035 def all():
00036     """Run all tests"""
00037     suite = ServiceTestSuite()
00038     suite.addTest(unittest.makeSuite(OPCServiceTest, 'test_'))
00039     return suite
00040 
00041 
00042 class OPCServiceTest(ServiceTestCase):
00043     """Test case for OPCService Web service
00044     
00045     def GetProperties(self, request):
00046     def Subscribe(self, request):
00047     def SubscriptionPolledRefresh(self, request):
00048     def SubscriptionCancel(self, request):
00049     def GetStatus(self, request):
00050     def Browse(self, request):
00051     def Read(self, request):
00052     def Write(self, request):
00053     """
00054     name = "test_OpcDaGateway"
00055     client_file_name = "OpcXmlDaSrv_client.py"
00056     types_file_name = "OpcXmlDaSrv_types.py"
00057     server_file_name = "OpcXmlDaSrv_server.py"
00058 
00059     def __init__(self, methodName):
00060         ServiceTestCase.__init__(self, methodName)
00061         self.wsdl2py_args.append('-b')
00062 
00063     def test_local_anyType(self):
00064         """serialize an int via anyType, then parse it back.
00065         """
00066         import time
00067         pyobj = self.client_module.ReadSoapOut()
00068         pyobj.RItemList = pyobj.new_RItemList()
00069         item = pyobj.RItemList.new_Items()
00070         pyobj.RItemList.Items = [item,]
00071         item.typecode.ofwhat[1].processContents = 'lax'
00072         item.Value = 123
00073         s = str(ZSI.SoapWriter().serialize(pyobj))
00074         
00075         ps = ZSI.ParsedSoap(s)
00076         pyobj = ps.Parse(pyobj.typecode)
00077         for item in pyobj.RItemList.Items:
00078             item.Value
00079         
00080     def test_net_Browse(self):
00081         """FaultException: The item path is not known to the server.
00082         """
00083         loc = self.client_module.OpcXmlDaSrvLocator()
00084         port = loc.getOpcXmlDaSrvSoap(**self.getPortKWArgs())
00085         
00086         msg = self.client_module.BrowseSoapIn()
00087         msg._PropertyNames=['Static']
00088         msg._attrs = {'ItemPath':'Static'}
00089         
00090         self.failUnless(\
00091             getattr(msg.typecode, 'attribute_typecode_dict', None) is not None,
00092              )
00093 
00094         self.failUnlessRaises(FaultException, port.Browse, msg)
00095 
00096 
00097 #    def hangs_test_net_Read(self):
00098 #        """FaultException: The item path is not known to the server.
00099 #        """
00100 #        msg = self.getInputMessageInstance('Read')
00101 #        
00102 #        #msg = ReadSoapIn()
00103 #        op = msg.new_Options()
00104 #        msg.Options = op
00105 #        op.set_attribute_ReturnItemTime(True)
00106 #        op.set_attribute_ReturnItemName(True)
00107 #        op.set_attribute_ClientRequestHandle("")
00108 #        op.set_attribute_LocaleID('en-us')
00109 #
00110 #        item_list = msg.new_ItemList()
00111 #        msg.ItemList = item_list
00112 #        item_list.set_attribute_MaxAge(1000)
00113 #
00114 #        item = item_list.new_Items()
00115 #        item_list.Items = item
00116 #        item.set_attribute_ItemPath("")
00117 #        item.set_attribute_ItemName("Staic.Analog Types.Int")
00118 #        item.set_attribute_ClientItemHandle("")
00119 #        
00120 #        self.failUnless(\
00121 #            getattr(msg.typecode, 'attribute_typecode_dict', None) is not None,
00122 #             )
00123 #
00124 #        self._ports[0].Read(msg)
00125 #        
00126 
00127 #    def hangs_test_net_GetProperties(self):
00128 #        """sending an empty GetProperties request, 
00129 #        receiving empty response.
00130 #        
00131 #        <GetPropertiesResult RcvTime="2005-12-16T13:23:55.8593750-05:00" 
00132 #            ReplyTime="2005-12-16T13:24:00.1093750-05:00" 
00133 #            RevisedLocaleID="en-us" ServerState="running" />
00134 #        """
00135 #        operationName = 'GetProperties'
00136 #        msg = self.getInputMessageInstance(operationName)
00137 #        msg._ItemIDs
00138 #        msg._PropertyNames
00139 #        response = self._ports[0].GetProperties(msg)
00140 #        result = response._GetPropertiesResult
00141 #        
00142 #        # not sure these attributes are required but check for them.
00143 #        self.failUnless(isinstance(getattr(result, '_attrs', None), dict))
00144 #        for k in ['RcvTime','ReplyTime','RevisedLocaleID','ServerState']:
00145 #            self.failUnless(result._attrs.has_key(k))
00146 #            
00147 #        self.failUnless(len(response._PropertyLists) == 0)
00148 #        self.failUnless(len(response._Errors) == 0)
00149         
00150 
00151 
00152 
00153 if __name__ == "__main__" :
00154     main()
00155 

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