00001
00002
00003
00004
00005
00006 import os, sys, unittest, time
00007 from ServiceTest import main, ServiceTestCase, ServiceTestSuite
00008 from ZSI import FaultException
00009 from ZSI.TC import _get_global_element_declaration as GED
00010 from ZSI.writer import SoapWriter
00011 from ZSI.parse import ParsedSoap
00012
00013 """
00014 Unittest for Bug Report
00015 [ ]
00016
00017 XSD: test_Attributes.xsd
00018 """
00019
00020
00021 def dispatch():
00022 """Run all dispatch tests"""
00023 suite = ServiceTestSuite()
00024 suite.addTest(unittest.makeSuite(AttributeTestCase, 'test_dispatch'))
00025 return suite
00026
00027 def local():
00028 """Run all local tests"""
00029 suite = ServiceTestSuite()
00030 suite.addTest(unittest.makeSuite(AttributeTestCase, 'test_local'))
00031 return suite
00032
00033 def net():
00034 """Run all network tests"""
00035 suite = ServiceTestSuite()
00036 suite.addTest(unittest.makeSuite(AttributeTestCase, 'test_net'))
00037 return suite
00038
00039 def all():
00040 """Run all tests"""
00041 suite = ServiceTestSuite()
00042 suite.addTest(unittest.makeSuite(AttributeTestCase, 'test_'))
00043 return suite
00044
00045
00046 class AttributeTestCase(ServiceTestCase):
00047 name = "test_Attributes"
00048 types_file_name = "test_Attributes_xsd_types.py"
00049
00050 def __init__(self, methodName):
00051 ServiceTestCase.__init__(self, methodName)
00052 self.wsdl2py_args.append('-b')
00053 self.wsdl2py_args.append('-x')
00054
00055 def test_local_attribute1(self):
00056 """
00057 """
00058 myDouble = 4.5
00059 myInt = 9
00060 myFloat = 3.0001
00061 myDecimal = 8.999
00062 myGDateTime = time.gmtime()
00063 myAnyURI = "urn:whatever"
00064 myQName = ("urn:test", "qbert")
00065 myString = "whatever"
00066 myHexBinary = hex(888)
00067
00068 pyobj = GED("urn:example", "Test1").pyclass()
00069
00070 pyobj.set_attribute_myDecimal(myDecimal)
00071 pyobj.set_attribute_myDouble(myDouble)
00072 pyobj.set_attribute_myFloat(myFloat)
00073 pyobj.set_attribute_myInt(myInt)
00074 pyobj.set_attribute_myDateTime(myGDateTime)
00075
00076 pyobj.set_attribute_myGDay(myGDateTime)
00077 pyobj.set_attribute_myGMonth(myGDateTime)
00078 pyobj.set_attribute_myGYear(myGDateTime)
00079 pyobj.set_attribute_myGYearMonth(myGDateTime)
00080 pyobj.set_attribute_myDate(myGDateTime)
00081 pyobj.set_attribute_myTime(myGDateTime)
00082
00083 pyobj.set_attribute_myAnyURI(myAnyURI)
00084 pyobj.set_attribute_myString(myString)
00085 pyobj.set_attribute_myHexBinary(myHexBinary)
00086 pyobj.set_attribute_myDuration(myGDateTime)
00087
00088
00089 pyobj.set_attribute_myQName(myQName)
00090 pyobj.set_attribute_myGMonthDay(myGDateTime)
00091
00092
00093
00094
00095
00096
00097 sw = SoapWriter()
00098 sw.serialize(pyobj)
00099 soap = str(sw)
00100
00101 ps = ParsedSoap(soap)
00102 pyobj2 = ps.Parse(pyobj.typecode)
00103
00104 test = pyobj2.get_attribute_myInt()
00105 self.failUnlessEqual(myInt, test)
00106
00107 test = pyobj2.get_attribute_myDouble()
00108 self.failUnlessEqual(myDouble, test)
00109
00110 test = pyobj2.get_attribute_myFloat()
00111 self.failUnlessEqual(myFloat, test)
00112
00113 test = pyobj2.get_attribute_myDecimal()
00114 self.failUnlessEqual(myDecimal, test)
00115
00116 test = pyobj2.get_attribute_myAnyURI()
00117 self.failUnlessEqual(myAnyURI, test)
00118
00119 test = pyobj2.get_attribute_myQName()
00120 self.failUnlessEqual(myQName, test)
00121
00122 test = pyobj2.get_attribute_myString()
00123 self.failUnlessEqual(myString, test)
00124
00125 test = pyobj2.get_attribute_myHexBinary()
00126 self.failUnlessEqual(myHexBinary, test)
00127
00128
00129 test = pyobj2.get_attribute_myDateTime()
00130 self.failUnlessEqual(myGDateTime[:-3], test[:-3])
00131
00132 test = pyobj2.get_attribute_myDate()
00133 self.failUnlessEqual(myGDateTime[:3], test[:3])
00134
00135 test = pyobj2.get_attribute_myTime()
00136 self.failUnlessEqual(myGDateTime[4:5], test[4:5])
00137
00138 test = pyobj.get_attribute_myDuration()
00139 self.failUnlessEqual(myGDateTime, test)
00140
00141
00142 test = pyobj2.get_attribute_myGDay()
00143 self.failUnlessEqual(myGDateTime[2], test[2])
00144
00145 test = pyobj2.get_attribute_myGMonth()
00146 self.failUnlessEqual(myGDateTime[1], test[1])
00147
00148 test = pyobj2.get_attribute_myGYear()
00149 self.failUnlessEqual(myGDateTime[0], test[0])
00150
00151 test = pyobj2.get_attribute_myGYearMonth()
00152 self.failUnlessEqual(myGDateTime[:2], test[:2])
00153
00154
00155
00156
00157
00158 def test_local_empty_attribute(self):
00159
00160 myString = ""
00161 pyobj = GED("urn:example", "Test1").pyclass()
00162 pyobj.set_attribute_myString(myString)
00163
00164 sw = SoapWriter()
00165 sw.serialize(pyobj)
00166 soap = str(sw)
00167
00168 print soap
00169 ps = ParsedSoap(soap)
00170 pyobj2 = ps.Parse(pyobj.typecode)
00171
00172 test = pyobj2.get_attribute_myString()
00173 self.failUnlessEqual(myString, str(test))
00174
00175
00176 if __name__ == "__main__" :
00177 main()
00178