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

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

00001 #!/usr/bin/env python
00002 
00003 ############################################################################
00004 # David W. Robertson, LBNL
00005 # See LBNLCopyright for copyright notice!
00006 ###########################################################################
00007 import sys, unittest
00008 from ServiceTest import ServiceTestCase, ServiceTestSuite
00009 
00010 import re
00011 from ZSI import EvaluateException
00012 """
00013 Unittest for contacting the TerraService Web service.
00014 
00015 WSDL:  http://terraservice.net/TerraService.asmx?WSDL
00016 """
00017 
00018 CONFIG_FILE = 'config.txt'
00019 CONFIG_SECTION = 'complex_types'
00020 SERVICE_NAME = 'TerraService'
00021 PORT_NAME = 'TerraServiceSoap'
00022 EXCEPTION_STRING_SERIALIZE = r"Serializing ConvertPlaceToLonLatPt xmlns=\"http://terraserver-usa.com/terraserver/\"._place, Exception Serializing place xmlns=\"http://terraserver-usa.com/terraserver/\"._City, AttributeError 'int' object has no attribute \'replace\'"
00023 
00024 SERIALIZE_PATTERN = re.compile(EXCEPTION_STRING_SERIALIZE)
00025 
00026 class TerraServiceTest(ServiceTestCase):
00027     """Test case for TerraService Web service
00028     """
00029     name = "test_TerraService"
00030 
00031     def test_ConvertPlaceToLonLatPt(self):
00032         operationName = 'ConvertPlaceToLonLatPt'
00033         request = self.getInputMessageInstance(operationName)
00034         request._place = self._moduleDict[self._typeModuleName].ns1.Place_Def()
00035         request._place._City = 'Oak Harbor'
00036         request._place._State = 'Washington'
00037         request._place._Country = 'United States'
00038         response = self.RPC(operationName, request)
00039         
00040 
00041 
00042     def test_ConvertLonLatPtToNearestPlace(self):
00043         operationName = 'ConvertLonLatPtToNearestPlace'
00044         request = self.getInputMessageInstance(operationName)
00045         request._place = self._moduleDict[self._typeModuleName].ns1.Place_Def()
00046         request._point = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00047         request._point._Lon = -122.643
00048         request._point._Lat = 48.297
00049         response = self.RPC(operationName, request)   
00050     
00051     def test_ConvertLonLatPtToUtmPt(self):
00052         operationName = 'ConvertLonLatPtToUtmPt'
00053         request = self.getInputMessageInstance(operationName)
00054         request._point = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00055         request._point._Lon = -122.643
00056         request._point._Lat = 48.297
00057         response = self.RPC(operationName, request)  
00058 
00059     def test_ConvertUtmPtToLonLatPt(self):
00060         operationName = 'ConvertUtmPtToLonLatPt'
00061         request = self.getInputMessageInstance(operationName) 
00062         request._utm = self._moduleDict[self._typeModuleName].ns1.UtmPt_Def()
00063         request._utm._X =  526703.512403
00064         request._utm._Y =  5348595.96493
00065         request._utm._Zone =  10
00066         response = self.RPC(operationName, request)  
00067 
00068     def test_CountPlacesInRect(self):
00069         operationName = 'CountPlacesInRect'
00070         request = self.getInputMessageInstance(operationName)
00071         request._upperleft = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00072         request._upperleft._Lon = -122.647
00073         request._upperleft._Lat = 48.293
00074         request._lowerright = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00075         request._lowerright._Lon = request._upperleft._Lon + 1.0
00076         request._lowerright._Lat = request._upperleft._Lon - 1.0
00077         request._ptype = "HillMountain"
00078         response = self.RPC(operationName, request)
00079     
00080     def test_GetAreaFromPt(self):
00081         operationName = 'GetAreaFromPt'
00082         request = self.getInputMessageInstance(operationName)
00083         request._center = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00084         request._center._Lon = -122.647
00085         request._center._Lat = 48.293
00086         request._theme = 'Topo'
00087         request._scale = "Scale2m"
00088         request._displayPixWidth = 2
00089         request._displayPixHeight = 2
00090         response = self.RPC(operationName, request)
00091 
00092     def test_GetAreaFromRect(self):
00093         operationName = 'GetAreaFromRect'
00094         request = self.getInputMessageInstance(operationName)
00095         request._upperLeft = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00096         request._upperLeft._Lon = -122.647
00097         request._upperLeft._Lat = 48.293
00098         request._lowerRight = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00099         request._lowerRight._Lon = request._upperLeft._Lon + 1.0
00100         request._lowerRight._Lat = request._upperLeft._Lat - 1.0
00101         request._theme = 'Topo'
00102         request._scale = "Scale2m"
00103         response = self.RPC(operationName, request)
00104 
00105     def test_GetAreaFromTileId(self):
00106         operationName = 'GetAreaFromTileId'
00107         request = self.getInputMessageInstance(operationName)
00108         id = self._moduleDict[self._typeModuleName].ns1.TileId_Def()
00109         id._Theme = 'Topo'
00110         id._Scale = "Scale2m"
00111         id._Scene = 8
00112         id._X = 20
00113         id._y = 20
00114         request._id = id
00115         request._displayPixWidth = 2
00116         request._displayPixHeight = 2
00117         response = self.RPC(operationName, request)
00118 
00119     def test_GetLatLonMetrics(self):
00120         operationName = 'GetLatLonMetrics'
00121         request = self.getInputMessageInstance(operationName)
00122         request._point = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00123         request._point._Lon = -122.647
00124         request._point._Lat = 48.293
00125         response = self.RPC(operationName, request)
00126 
00127         # derived type (enum) problem
00128         # skipping it for now
00129 
00130               
00131         # derived type (enum) problem
00132         # also inconsistent timeout problem for this call
00133 
00134 
00135     def test_GetPlaceListInRect(self):
00136         operationName = 'GetPlaceListInRect'
00137         request = self.getInputMessageInstance(operationName)
00138         request._upperleft = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00139         request._upperleft._Lon = -123.0
00140         request._upperleft._Lat = 44.0
00141         request._lowerright = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00142             # needs to be small, otherwise different items
00143             # returned each time
00144         request._lowerright._Lon = -122.8
00145         request._lowerright._Lat = 43.8
00146         request._ptype = "HillMountain"
00147         request._MaxItems = 3
00148         response = self.RPC(operationName, request)
00149 
00150     def test_GetTheme(self):
00151         operationName = 'GetTheme'
00152         request = self.getInputMessageInstance(operationName)
00153         request._theme = 'Topo'
00154         response = self.RPC(operationName, request)
00155 
00156     def test_GetTile(self):
00157         operationName = 'GetTile'
00158         request = self.getInputMessageInstance(operationName)
00159         request._id = self._moduleDict[self._typeModuleName].ns1.TileId_Def()
00160         request._id._Theme = 'Topo'
00161         request._id._Scale = 'Scale2m'
00162         request._id._Scene = 8
00163         request._id._X = 20
00164         request._id._Y = 20
00165         response = self.RPC(operationName, request)
00166 
00167     def test_GetTileMetaFromLonLatPt(self):
00168         operationName = 'GetTileMetaFromLonLatPt'
00169         request = self.getInputMessageInstance(operationName)
00170         request._theme = 'Topo'
00171         request._point = self._moduleDict[self._typeModuleName].ns1.LonLatPt_Def()
00172         request._point._Lon = -122.64
00173         request._point._Lat = 48.29
00174         request._scale = "Scale4m"
00175         response = self.RPC(operationName, request)
00176 
00177     def test_GetTileMetaFromTileId(self):
00178         operationName = 'GetTileMetaFromTileId'
00179         request = self.getInputMessageInstance(operationName)
00180         request._id = self._moduleDict[self._typeModuleName].ns1.TileId_Def()
00181         request._id._Theme = 'Topo'
00182         request._id._Scale = 'Scale2m'
00183         request._id._Scene = 8
00184         request._id._X = 20
00185         request._id._Y = 20
00186         response = self.RPC(operationName, request)
00187 
00188 
00189 class TerraServiceTestFailures(ServiceTestCase):
00190     name = "test_TerraService"
00191     
00192     def test_ConvertPlaceToLonLatPt_x1(self):
00193         """
00194         This test should fail
00195         """
00196         operationName = 'ConvertPlaceToLonLatPt'
00197         request = self.getInputMessageInstance(operationName)
00198         request._place = self._moduleDict[self._typeModuleName].ns1.Place_Def()
00199         request._place._City = 1
00200         request._place._State = 'Washington'
00201         request._place._Country = 'United States'
00202         
00203         try:
00204             response = self.RPC(operationName, request)
00205             
00206         except Exception, msg:
00207             exceptionString = str(msg)
00208             if SERIALIZE_PATTERN.match(exceptionString):
00209                 pass
00210             else:
00211                 raise
00212 
00213     def test_GetPlaceFacts(self):
00214         operationName = 'GetPlaceFacts'
00215         request = self.getInputMessageInstance(operationName)
00216         request._place = self._moduleDict[self._typeModuleName].ns1.Place_Def()
00217         request._place._City = 'Seattle'
00218         request._place._State = 'Washington'
00219         request._place._Country = 'United States'
00220         try:
00221             response = self.RPC(operationName, request)
00222         except EvaluateException, ex:
00223             pass
00224 
00225     def test_GetPlaceList(self):
00226         operationName = 'GetPlaceList'
00227         request = self.getInputMessageInstance(operationName)
00228         request._placeName = 'New York'
00229         request._MaxItems = 5
00230         request._imagePresence = 0
00231         try:
00232             response = self.RPC(operationName, request)
00233         except EvaluateException, ex:
00234             pass
00235 
00236 def makeTestSuite():
00237     suite = ServiceTestSuite()
00238     suite.addTest(unittest.makeSuite(TerraServiceTest, 'test_'))
00239     suite.addTest(unittest.makeSuite(TerraServiceTestFailures, 'test_'))
00240     return suite
00241 
00242 
00243 if __name__ == "__main__" :
00244     unittest.TestProgram(defaultTest="makeTestSuite")

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