00001
00002
00003
00004
00005
00006 import os, sys, unittest
00007 from ServiceTest import main, ServiceTestCase, ServiceTestSuite
00008 from ZSI import SoapWriter, ParsedSoap, TC, FaultException
00009 from ZSI import _child_elements, _get_element_nsuri_name, _is_element
00010 from ZSI.schema import ElementDeclaration
00011 from ZSI.wstools.Namespaces import SCHEMA
00012
00013 from xml.dom.ext.reader import PyExpat
00014 from xml.dom import Node
00015 """
00016 Unittest for NVO Admin.
00017
00018 WSDL:
00019 """
00020
00021
00022 class schema(ElementDeclaration, TC.XML):
00023 """Create an element for dealing with <xsd:schema>
00024 """
00025 schema = SCHEMA.XSD3
00026 literal = "schema"
00027
00028 def __init__(self, *args, **kw):
00029
00030 TC.XML.__init__(self, pname=(SCHEMA.XSD3, "schema"), wrapped=False, **kw)
00031
00032
00033
00034 def dispatch():
00035 """Run all dispatch tests"""
00036 suite = ServiceTestSuite()
00037 suite.addTest(unittest.makeSuite(ServiceTest, 'test_dispatch'))
00038 return suite
00039
00040 def local():
00041 """Run all local tests"""
00042 suite = ServiceTestSuite()
00043 suite.addTest(unittest.makeSuite(ServiceTest, 'test_local'))
00044 return suite
00045
00046 def net():
00047 """Run all network tests"""
00048 suite = ServiceTestSuite()
00049 suite.addTest(unittest.makeSuite(ServiceTest, 'test_net'))
00050 return suite
00051
00052 def all():
00053 """Run all tests"""
00054 suite = ServiceTestSuite()
00055 suite.addTest(unittest.makeSuite(ServiceTest, 'test_'))
00056 return suite
00057
00058
00059 class NVOAdmin(ServiceTestCase):
00060 """Test case for NVO Admin
00061
00062 """
00063 name = "test_NVOAdmin"
00064 client_file_name = "RegistryAdmin_client.py"
00065 types_file_name = "RegistryAdmin_types.py"
00066
00067
00068 def __init__(self, methodName):
00069 ServiceTestCase.__init__(self, methodName)
00070 self.wsdl2py_args.append('-b')
00071
00072 def test_local_serialize_schema(self):
00073 from ZSI import SoapWriter
00074 from ZSI import _child_elements
00075 from xml.dom.ext.reader import PyExpat
00076 msg = self.client_module.DSQueryRegistrySoapOut()
00077 msg.DSQueryRegistryResult = msg.new_DSQueryRegistryResult()
00078 msg.DSQueryRegistryResult.Any = 'hi'
00079
00080 input = open('wsdl/nvo-admin.wsdl').read()
00081 reader = PyExpat.Reader()
00082 dom = reader.fromString(input)
00083
00084 dnode = _child_elements(dom)[0]
00085 tnode = _child_elements(dnode)[0]
00086 snode = _child_elements(tnode)[0]
00087
00088 msg.DSQueryRegistryResult.Schema = snode
00089
00090 sw = SoapWriter()
00091 sw.serialize(msg)
00092 soap = str(sw)
00093 print soap
00094
00095 ps = ParsedSoap(soap)
00096 pyobj = ps.Parse(msg.typecode)
00097 self.failUnlessEqual(pyobj.DSQueryRegistryResult.Any, msg.DSQueryRegistryResult.Any)
00098 self.failUnless(_is_element(pyobj.DSQueryRegistryResult.Schema))
00099 print _get_element_nsuri_name(pyobj.DSQueryRegistryResult.Schema)
00100 self.failUnlessEqual(_get_element_nsuri_name(pyobj.DSQueryRegistryResult.Schema), (u'http://www.w3.org/2001/XMLSchema', u'schema'))
00101
00102
00103 ServiceTest = NVOAdmin
00104
00105 if __name__ == "__main__" :
00106 main()
00107