Package eoxserver :: Package services :: Module tests
[hide private]
[frames] | no frames]

Source Code for Module eoxserver.services.tests

   1  #------------------------------------------------------------------------------- 
   2  # $Id: tests.py 2401 2013-03-23 18:45:35Z meissls $ 
   3  # 
   4  # Project: EOxServer <http://eoxserver.org> 
   5  # Authors: Stephan Krause <stephan.krause@eox.at> 
   6  #          Stephan Meissl <stephan.meissl@eox.at> 
   7  #          Fabian Schindler <fabian.schindler@eox.at> 
   8  #          Martin Paces <martin.paces@eox.at> 
   9  # 
  10  #------------------------------------------------------------------------------- 
  11  # Copyright (C) 2011 EOX IT Services GmbH 
  12  # 
  13  # Permission is hereby granted, free of charge, to any person obtaining a copy 
  14  # of this software and associated documentation files (the "Software"), to deal 
  15  # in the Software without restriction, including without limitation the rights 
  16  # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  
  17  # copies of the Software, and to permit persons to whom the Software is  
  18  # furnished to do so, subject to the following conditions: 
  19  # 
  20  # The above copyright notice and this permission notice shall be included in all 
  21  # copies of this Software or works derived from this Software. 
  22  # 
  23  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  24  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  25  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
  26  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  27  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
  28  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
  29  # THE SOFTWARE. 
  30  #------------------------------------------------------------------------------- 
  31   
  32  from urllib import quote 
  33   
  34  import eoxserver.services.testbase as eoxstest 
  35  from eoxserver.testing.core import BASE_FIXTURES 
  36   
  37   
38 -class EmptyRequestExceptionTestCase(eoxstest.ExceptionTestCase):
39 """This test shall check empty requests. A valid ows:ExceptionReport shall be returned"""
40 - def getRequest(self):
41 params = "" 42 return (params, "kvp")
43
44 - def getExpectedExceptionCode(self):
45 return "MissingParameterValue"
46 47 #=============================================================================== 48 # WCS 1.0 49 #=============================================================================== 50
51 -class WCS10GetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
52 - def getRequest(self):
53 params = "service=WCS&version=1.0.0&request=GetCapabilities" 54 return (params, "kvp")
55
56 -class WCS10GetCapabilitiesEmptyTestCase(eoxstest.XMLTestCase):
57 """This test shall retrieve a valid but empty WCS 1.0 GetCapabilities response (see #41)""" 58 fixtures = BASE_FIXTURES 59
60 - def getRequest(self):
61 params = "service=WCS&version=1.0.0&request=GetCapabilities" 62 return (params, "kvp")
63
64 -class WCS10DescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
65 - def getRequest(self):
66 params = "service=WCS&version=1.0.0&request=DescribeCoverage&coverage=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced" 67 return (params, "kvp")
68
69 -class WCS10DescribeCoverageMosaicTestCase(eoxstest.XMLTestCase):
70 - def getRequest(self):
71 params = "service=WCS&version=1.0.0&request=DescribeCoverage&coverage=mosaic_MER_FRS_1P_RGB_reduced" 72 return (params, "kvp")
73
74 -class WCS10GetCoverageDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
75 - def getRequest(self):
76 params = "service=WCS&version=1.0.0&request=GetCoverage&coverage=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced&crs=epsg:4326&bbox=-4,32,28,46.5&width=640&height=290&format=GeoTIFF" 77 return (params, "kvp")
78
79 -class WCS10GetCoverageMosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
80 - def getRequest(self):
81 params = "service=WCS&version=1.0.0&request=GetCoverage&coverage=mosaic_MER_FRS_1P_RGB_reduced&crs=epsg:4326&bbox=-4,32,28,46.5&width=640&height=290&format=image/tiff" 82 return (params, "kvp")
83 84 #=============================================================================== 85 # WCS 1.1 86 #=============================================================================== 87
88 -class WCS11GetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
89 - def getRequest(self):
90 params = "service=WCS&version=1.1.2&request=GetCapabilities" 91 return (params, "kvp")
92
93 -class WCS11GetCapabilitiesEmptyTestCase(eoxstest.XMLTestCase):
94 """This test shall retrieve a valid but empty WCS 1.1 GetCapabilities response (see #41)""" 95 fixtures = BASE_FIXTURES 96
97 - def getRequest(self):
98 params = "service=WCS&version=1.1.2&request=GetCapabilities" 99 return (params, "kvp")
100
101 -class WCS11DescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
102 - def getRequest(self):
103 params = "service=WCS&version=1.1.2&request=DescribeCoverage&identifier=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced" 104 return (params, "kvp")
105
106 -class WCS11DescribeCoverageMosaicTestCase(eoxstest.XMLTestCase):
107 - def getRequest(self):
108 params = "service=WCS&version=1.1.2&request=DescribeCoverage&identifier=mosaic_MER_FRS_1P_RGB_reduced" 109 return (params, "kvp")
110
111 -class WCS11GetCoverageDatasetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
112 - def getRequest(self):
113 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced&crs=epsg:4326&bbox=12,32,28,46.5&format=image/tiff" 114 return (params, "kvp")
115
116 -class WCS11GetCoverageMosaicTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
117 - def getRequest(self):
118 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1P_RGB_reduced&crs=epsg:4326&bbox=-4,32,28,46.5&format=image/tiff" 119 return (params, "kvp")
120
121 -class WCS11GetCoverageDatasetSubsetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
122 - def getRequest(self):
123 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced&boundingbox=0,0,550,440,urn:ogc:def:crs:OGC::imageCRS&format=image/tiff&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridBaseCRS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=0,0&GridOffsets=2,2" 124 return (params, "kvp")
125
126 -class WCS11GetCoverageDatasetSubsetEPSG4326TestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
127 - def getRequest(self):
128 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced&boundingbox=32,12,46.5,28,urn:ogc:def:crs:EPSG::4326&format=image/tiff&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridBaseCRS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=46.5,12&GridOffsets=0.06,0.06" 129 return (params, "kvp")
130
131 -class WCS11GetCoverageMosaicSubsetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
132 - def getRequest(self):
133 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1P_RGB_reduced&boundingbox=300,200,700,350,urn:ogc:def:crs:OGC::imageCRS&format=image/tiff&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridBaseCRS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=0,0&GridOffsets=2,2" 134 return (params, "kvp")
135
136 -class WCS11GetCoverageMosaicSubsetEPSG4326TestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
137 - def getRequest(self):
138 params = "service=WCS&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1P_RGB_reduced&boundingbox=35,10,42,20,urn:ogc:def:crs:EPSG::4326&format=image/tiff&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridBaseCRS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=40,10&GridOffsets=-0.06,0.06" 139 return (params, "kvp")
140 141 #=============================================================================== 142 # WCS 1.1: Exceptions 143 #=============================================================================== 144
145 -class WCS11DescribeCoverageNoSuchCoverageFaultTestCase(eoxstest.ExceptionTestCase):
146 - def getRequest(self):
147 params = "service=wcs&version=1.1.2&request=DescribeCoverage&identifier=INVALID" 148 return (params, "kvp")
149
150 - def getExpectedExceptionCode(self):
151 return "NoSuchCoverage"
152 153
154 -class WCS11GetCoverageNoSuchCoverageFaultTestCase(eoxstest.ExceptionTestCase):
155 - def getRequest(self):
156 params = "service=wcs&version=1.1.2&request=GetCoverage&identifier=INVALID" 157 return (params, "kvp")
158
159 - def getExpectedExceptionCode(self):
160 return "NoSuchCoverage"
161 162 #NOTE: Support for Referenceable Datasets in WCS < 2.0.0 not avaiable. 163 # Any attempt to access Ref.DS via WCS 1.x should be treated as 164 # non-existing coverage.
165 -class WCS11DescribeCoverageReferenceableFaultTestCase(eoxstest.ExceptionTestCase):
166 - def getRequest(self):
167 params = "service=wcs&version=1.1.2&request=DescribeCoverage&identifier=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775" 168 return (params, "kvp")
169
170 - def getExpectedExceptionCode(self):
171 return "NoSuchCoverage"
172
173 -class WCS11GetCoverageReferenceableFaultTestCase(eoxstest.ExceptionTestCase):
174 - def getRequest(self):
175 params = "service=wcs&version=1.1.2&request=GetCoverage&identifier=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775" 176 return (params, "kvp")
177
178 - def getExpectedExceptionCode(self):
179 return "NoSuchCoverage"
180
181 -class WCS11GetCoverageBBoxFaultTestCase(eoxstest.ExceptionTestCase):
182 - def getRequest(self):
183 params = "service=wcs&version=1.1.2&request=GetCoverage&identifier=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced&boundingbox=80,80,90,90,urn:ogc:def:crs:EPSG::4326&format=image/tiff&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridBaseCRS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=46.5,12&GridOffsets=0.06,0.06" 184 return (params, "kvp")
185
186 - def getExpectedExceptionCode(self):
187 return "bbox"
188
189 -class WCS11GetCoverageFormatUnsupportedFaultTestCase(eoxstest.ExceptionTestCase):
190 - def getRequest(self):
191 params = "service=wcs&version=1.1.2&request=GetCoverage&identifier=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/jpeg" 192 return (params, "kvp")
193
194 - def getExpectedExceptionCode(self):
195 return "InvalidParameterValue"
196
197 -class WCS11GetCoverageFormatUnknownFaultTestCase(eoxstest.ExceptionTestCase):
198 - def getRequest(self):
199 params = "service=wcs&version=1.1.2&request=GetCoverage&identifier=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=unknown" 200 return (params, "kvp")
201
202 - def getExpectedExceptionCode(self):
203 return "InvalidParameterValue"
204 205 #=============================================================================== 206 # WCS 1.1 WCS Transaction tests 207 #=============================================================================== 208
209 -class WCS11TransactionRectifiedDatasetTestCase(eoxstest.WCSTransactionRectifiedGridCoverageTestCase):
210 """ This test case shall test the synchronous inserting of a new 211 RectifiedGridCoverage by means of the WCS 1.1 Transaction operation 212 ("Add" action). 213 """ 214 fixtures = BASE_FIXTURES 215 ID = "RECTIFIED_MERIS_ID" 216 ADDtiffFile = "meris/mosaic_MER_FRS_1P_RGB_reduced/mosaic_ENVISAT-MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced.tif" 217 ADDmetaFile = "meris/mosaic_MER_FRS_1P_RGB_reduced/mosaic_ENVISAT-MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced.xml"
218
219 -class WCS11TransactionAsyncRectifiedDatasetTestCase(eoxstest.WCSTransactionRectifiedGridCoverageTestCase):
220 """ This test case shall test the asynchronous inserting of a new 221 RectifiedGridCoverage by means of the WCS 1.1 Transaction operation 222 ("Add" action). 223 """ 224 fixtures = BASE_FIXTURES 225 ID = "RECTIFIED_MERIS_ID" 226 ADDtiffFile = "meris/mosaic_MER_FRS_1P_RGB_reduced/mosaic_ENVISAT-MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced.tif" 227 ADDmetaFile = "meris/mosaic_MER_FRS_1P_RGB_reduced/mosaic_ENVISAT-MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced.xml" 228 isAsync = True
229
230 -class WCS11TransactionReferenceableDatasetTestCase(eoxstest.WCSTransactionReferenceableGridCoverageTestCase):
231 """ This test case shall test the synchronous inserting of a new 232 ReferenceableGridCoverage by means of the WCS 1.1 Transaction operation 233 ("Add" action). 234 """ 235 fixtures = BASE_FIXTURES 236 ID = "REFERENCEABLE_ASAR_ID" 237 ADDtiffFile = "asar/ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775.tiff"
238 239 #=============================================================================== 240 # WCS 2.0 Get Capabilities 241 #=============================================================================== 242
243 -class WCS20GetCapabilitiesValidTestCase(eoxstest.XMLTestCase, eoxstest.SchematronTestMixIn):
244 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response""" 245 246 schematron_locations = ["http://schemas.opengis.net/wcs/crs/", 247 "http://schemas.opengis.net/wcs/crs/1.0/wcsCrs.sch"] 248
249 - def getRequest(self):
250 params = "service=WCS&version=2.0.1&request=GetCapabilities" 251 return (params, "kvp")
252
253 -class WCS20GetCapabilitiesEmptyTestCase(eoxstest.XMLTestCase):
254 """This test shall retrieve a valid but empty WCS 2.0 EO-AP (EO-WCS) GetCapabilities response (see #41)""" 255 fixtures = BASE_FIXTURES 256
257 - def getRequest(self):
258 params = "service=WCS&version=2.0.1&request=GetCapabilities" 259 return (params, "kvp")
260
261 -class WCSVersionNegotiationOldStyleTestCase(eoxstest.XMLTestCase):
262 """This test shall check old style version negotiation. A valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response shall be returned"""
263 - def getRequest(self):
264 params = "service=wcs&version=3.0.0&request=GetCapabilities" 265 return (params, "kvp")
266
267 -class WCSVersionNegotiationNewStyleTestCase(eoxstest.XMLTestCase):
268 """This test shall check new style version negotiation. A valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response shall be returned"""
269 - def getRequest(self):
270 params = "service=wcs&acceptversions=2.0.1,1.1.0&request=GetCapabilities" 271 return (params, "kvp")
272
273 -class WCSVersionNegotiationFaultTestCase(eoxstest.ExceptionTestCase):
274 """This test shall check new style version negotiation. A valid ows:ExceptionReport shall be returned"""
275 - def getRequest(self):
276 params = "service=wcs&acceptversions=3.0.0&request=GetCapabilities" 277 return (params, "kvp")
278
279 - def getExpectedExceptionCode(self):
280 return "VersionNegotiationFailed"
281 282 #=============================================================================== 283 # WCS 2.0 DescribeCoverage 284 #=============================================================================== 285
286 -class WCS20DescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
287 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeCoverage response for a wcseo:RectifiedDataset."""
288 - def getRequest(self):
289 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed" 290 return (params, "kvp")
291
292 -class WCS20DescribeCoverageMosaicTestCase(eoxstest.XMLTestCase):
293 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeCoverage response for a wcseo:RectifiedStitchedMosaic."""
294 - def getRequest(self):
295 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced" 296 return (params, "kvp")
297
298 -class WCS20DescribeCoverageDatasetSeriesFaultTestCase(eoxstest.ExceptionTestCase):
299 """This test shall try to retrieve a CoverageDescription for a non-coverage. It shall yield a valid ows:ExceptionReport"""
300 - def getRequest(self):
301 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=MER_FRS_1P_reduced" 302 return (params, "kvp")
303
304 - def getExpectedHTTPStatus(self):
305 return 404
306
307 - def getExpectedExceptionCode(self):
308 return "NoSuchCoverage"
309
310 -class WCS20DescribeCoverageFaultTestCase(eoxstest.ExceptionTestCase):
311 """This test shall try to retrieve a CoverageDescription for a coverage that does not exist. It shall yield a valid ows:ExceptionReport"""
312 - def getRequest(self):
313 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=some_coverage" 314 return (params, "kvp")
315
316 - def getExpectedHTTPStatus(self):
317 return 404
318
319 - def getExpectedExceptionCode(self):
320 return "NoSuchCoverage"
321
322 -class WCS20DescribeCoverageMissingParameterFaultTestCase(eoxstest.ExceptionTestCase):
323 """This test shall yield a valid ows:ExceptionReport for a missing parameter"""
324 - def getRequest(self):
325 params = "service=WCS&version=2.0.0&request=DescribeCoverage" 326 return (params, "kvp")
327
328 - def getExpectedExceptionCode(self):
329 return "MissingParameterValue"
330 331 #=============================================================================== 332 # WCS 2.0 DescribeEOCoverageSet 333 #=============================================================================== 334
335 -class WCS20DescribeEOCoverageSetDatasetTestCase(eoxstest.XMLTestCase):
336 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeEOCoverageSet response for a wcseo:RectifiedDataset"""
337 - def getRequest(self):
338 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed" 339 return (params, "kvp")
340
341 -class WCS20DescribeEOCoverageSetMosaicTestCase(eoxstest.XMLTestCase):
342 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeEOCoverageSet response for a wcseo:RectifiedStitchedMosaic"""
343 - def getRequest(self):
344 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=mosaic_MER_FRS_1P_RGB_reduced" 345 return (params, "kvp")
346
347 -class WCS20DescribeEOCoverageSetDatasetSeriesTestCase(eoxstest.XMLTestCase):
348 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeEOCoverageSet response for a wcseo:RectifiedDatasetSeries."""
349 - def getRequest(self):
350 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced" 351 return (params, "kvp")
352
353 -class WCS20DescribeEOCoverageSetFaultTestCase(eoxstest.ExceptionTestCase):
354 """This test shall try to retrieve a CoverageDescription set for an wcseo-Object that does not exist. It shall yield a valid ows:ExceptionReport."""
355 - def getRequest(self):
356 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=some_eo_object" 357 return (params, "kvp")
358
359 - def getExpectedHTTPStatus(self):
360 return 404
361
362 - def getExpectedExceptionCode(self):
363 return "NoSuchCoverage"
364
365 -class WCS20DescribeEOCoverageSetMissingParameterFaultTestCase(eoxstest.ExceptionTestCase):
366 - def getRequest(self):
367 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet" 368 return (params, "kvp")
369
370 - def getExpectedExceptionCode(self):
371 return "MissingParameterValue"
372
373 -class WCS20DescribeEOCoverageSetTwoSpatialSubsetsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
374 - def getRequest(self):
375 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)" 376 return (params, "kvp")
377
378 - def getExpectedCoverageIds(self):
379 return [ 380 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 381 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 382 "MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_uint16_reduced_compressed", 383 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 384 "mosaic_MER_FRS_1P_RGB_reduced" 385 ]
386
387 -class WCS20DescribeEOCoverageSetTwoSpatialSubsetsOverlapsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
388 - def getRequest(self):
389 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)&containment=overlaps" 390 return (params, "kvp")
391
392 - def getExpectedCoverageIds(self):
393 return [ 394 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 395 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 396 "MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_uint16_reduced_compressed", 397 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 398 "mosaic_MER_FRS_1P_RGB_reduced" 399 ]
400
401 -class WCS20DescribeEOCoverageSetTwoSpatialSubsetsContainsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
402 - def getRequest(self):
403 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)&containment=contains" 404 return (params, "kvp")
405
406 - def getExpectedCoverageIds(self):
407 return [ 408 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 409 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced" 410 ]
411
412 -class WCS20DescribeEOCoverageSetTemporalSubsetTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
413 - def getRequest(self):
414 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")" 415 return (params, "kvp")
416
417 - def getExpectedCoverageIds(self):
418 return [ 419 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 420 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 421 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 422 "mosaic_MER_FRS_1P_RGB_reduced" 423 ]
424
425 -class WCS20DescribeEOCoverageSetTemporalSubsetOverlapsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
426 - def getRequest(self):
427 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")&containment=overlaps" 428 return (params, "kvp")
429
430 - def getExpectedCoverageIds(self):
431 return [ 432 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 433 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 434 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 435 "mosaic_MER_FRS_1P_RGB_reduced" 436 ]
437
438 -class WCS20DescribeEOCoverageSetTemporalSubsetContainsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
439 - def getRequest(self):
440 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")&containment=contains" 441 return (params, "kvp")
442
443 - def getExpectedCoverageIds(self):
444 return [ 445 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 446 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced" 447 ]
448
449 -class WCS20DescribeEOCoverageSetSpatioTemporalSubsetTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
450 - def getRequest(self):
451 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)" 452 return (params, "kvp")
453
454 - def getExpectedCoverageIds(self):
455 return [ 456 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 457 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 458 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 459 "mosaic_MER_FRS_1P_RGB_reduced" 460 ]
461
462 -class WCS20DescribeEOCoverageSetSpatioTemporalSubsetOverlapsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
463 - def getRequest(self):
464 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)&containment=overlaps" 465 return (params, "kvp")
466
467 - def getExpectedCoverageIds(self):
468 return [ 469 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 470 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 471 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 472 "mosaic_MER_FRS_1P_RGB_reduced" 473 ]
474
475 -class WCS20DescribeEOCoverageSetSpatioTemporalSubsetContainsTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
476 - def getRequest(self):
477 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-08-22T09:22:00Z\")&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(11,33)&containment=contains" 478 return (params, "kvp")
479
480 - def getExpectedCoverageIds(self):
481 return [ 482 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 483 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced" 484 ]
485
486 -class WCS20DescribeEOCoverageSetIncorrectTemporalSubsetFaultTestCase(eoxstest.ExceptionTestCase):
487 - def getRequest(self):
488 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(2006-08-01,2006-08-22)" 489 return (params, "kvp")
490
491 - def getExpectedHTTPStatus(self):
492 return 404
493
494 - def getExpectedExceptionCode(self):
495 return "InvalidSubsetting"
496
497 -class WCS20DescribeEOCoverageSetInvalidTemporalSubsetFaultTestCase(eoxstest.ExceptionTestCase):
498 - def getRequest(self):
499 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=phenomenonTime(\"2006-08-01\",\"2006-31-31\")" 500 return (params, "kvp")
501
502 - def getExpectedHTTPStatus(self):
503 return 404
504
505 - def getExpectedExceptionCode(self):
506 return "InvalidSubsetting"
507
508 -class WCS20DescribeEOCoverageSetIncorrectSpatialSubsetFaultTestCase(eoxstest.ExceptionTestCase):
509 - def getRequest(self):
510 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(some_lat,some_other_lat)" 511 return (params, "kvp")
512
513 - def getExpectedHTTPStatus(self):
514 return 404
515
516 - def getExpectedExceptionCode(self):
517 return "InvalidSubsetting"
518
519 -class WCS20DescribeEOCoverageSetInvalidSpatialSubsetFaultTestCase(eoxstest.ExceptionTestCase):
520 - def getRequest(self):
521 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(47,32)" 522 return (params, "kvp")
523
524 - def getExpectedHTTPStatus(self):
525 return 404
526
527 - def getExpectedExceptionCode(self):
528 return "InvalidSubsetting"
529 530 # EOxServer allows and understands certain additional axis labels like "lat", or "long".
531 -class WCS20DescribeEOCoverageSetInvalidAxisLabelFaultTestCase(eoxstest.ExceptionTestCase):
532 - def getRequest(self):
533 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&subset=x_axis,http://www.opengis.net/def/crs/EPSG/0/4326(32,47)" 534 return (params, "kvp")
535
536 - def getExpectedHTTPStatus(self):
537 return 404
538
539 - def getExpectedExceptionCode(self):
540 return "InvalidAxisLabel"
541 542 #=============================================================================== 543 # WCS 2.0: Paging testcases 544 #=============================================================================== 545
546 -class WCS20DescribeEOCoverageSetDatasetPagingCountTestCase(eoxstest.WCS20DescribeEOCoverageSetPagingTestCase):
547 - def getExpectedCoverageCount(self):
548 return 2
549
550 - def getRequest(self):
551 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&count=2" 552 return (params, "kvp")
553 554 #=============================================================================== 555 # WCS 2.0: Section test cases 556 #=============================================================================== 557
558 -class WCS20DescribeEOCoverageSetSectionsAllTestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
559 - def getExpectedSections(self):
560 return [ 561 "wcs:CoverageDescriptions", 562 "wcseo:DatasetSeriesDescriptions" 563 ]
564
565 - def getRequest(self):
566 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=All" 567 return (params, "kvp")
568
569 -class WCS20DescribeEOCoverageSetSectionsAll2TestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
570 - def getExpectedSections(self):
571 return [ 572 "wcs:CoverageDescriptions", 573 "wcseo:DatasetSeriesDescriptions" 574 ]
575
576 - def getRequest(self):
577 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=CoverageDescriptions,DatasetSeriesDescriptions" 578 return (params, "kvp")
579
580 -class WCS20DescribeEOCoverageSetSectionsAll3TestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
581 - def getExpectedSections(self):
582 return [ 583 "wcs:CoverageDescriptions", 584 "wcseo:DatasetSeriesDescriptions" 585 ]
586
587 - def getRequest(self):
588 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=All,DatasetSeriesDescriptions" 589 return (params, "kvp")
590
591 -class WCS20DescribeEOCoverageSetSectionsAll4TestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
592 - def getExpectedSections(self):
593 return [ 594 "wcs:CoverageDescriptions", 595 "wcseo:DatasetSeriesDescriptions" 596 ]
597
598 - def getRequest(self):
599 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=CoverageDescriptions,All" 600 return (params, "kvp")
601
602 -class WCS20DescribeEOCoverageSetSectionsCoverageDescriptionsTestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
603 - def getExpectedSections(self):
604 return [ 605 "wcs:CoverageDescriptions" 606 ]
607
608 - def getRequest(self):
609 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=CoverageDescriptions" 610 return (params, "kvp")
611
612 -class WCS20DescribeEOCoverageSetSectionsDatasetSeriesDescriptionsTestCase(eoxstest.WCS20DescribeEOCoverageSetSectionsTestCase):
613 - def getExpectedSections(self):
614 return [ 615 "wcseo:DatasetSeriesDescriptions" 616 ]
617
618 - def getRequest(self):
619 params = "service=WCS&version=2.0.0&request=DescribeEOCoverageSet&eoId=MER_FRS_1P_reduced&sections=DatasetSeriesDescriptions" 620 return (params, "kvp")
621
622 -class WCS20DescribeEOCoverageSetSectionsFaultTestCase(eoxstest.ExceptionTestCase):
623 - def getRequest(self):
624 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced&sections=WrongSection" 625 return (params, "kvp")
626
627 - def getExpectedHTTPStatus(self):
628 return 400
629
630 - def getExpectedExceptionCode(self):
631 return "InvalidParameterValue"
632 633
634 -class WCS20DescribeEOCoverageSetDatasetUniqueTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
635 - def getRequest(self):
636 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed,MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed" 637 return (params, "kvp")
638
639 - def getExpectedCoverageIds(self):
640 return [ 641 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed" 642 ]
643
644 -class WCS20DescribeEOCoverageSetDatasetOutOfSubsetTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
645 - def getRequest(self):
646 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed&ubset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(0,1)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(0,1)" 647 return (params, "kvp")
648
649 - def getExpectedCoverageIds(self):
650 return []
651
652 -class WCS20DescribeEOCoverageSetDatasetSeriesStitchedMosaicTestCase(eoxstest.WCS20DescribeEOCoverageSetSubsettingTestCase):
653 - def getRequest(self):
654 params = "service=wcs&version=2.0.0&request=DescribeEOCoverageSet&EOID=MER_FRS_1P_reduced,mosaic_MER_FRS_1P_RGB_reduced" 655 return (params, "kvp")
656
657 - def getExpectedCoverageIds(self):
658 return [ 659 "MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed", 660 "MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed", 661 "MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_uint16_reduced_compressed", 662 "mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 663 "mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced", 664 "mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced", 665 "mosaic_MER_FRS_1P_RGB_reduced" 666 ]
667 668 #=============================================================================== 669 # WCS 2.0: Exceptions 670 #=============================================================================== 671 672 # after WCS 2.0.1 implementation does not lead to an error anymore 673 #class WCS20GetCoverageFormatMissingFaultTestCase(eoxstest.ExceptionTestCase): 674 # def getRequest(self): 675 # params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced" 676 # return (params, "kvp") 677 # 678 # def getExpectedExceptionCode(self): 679 # return "MissingParameterValue" 680
681 -class WCS20GetCoverageNoSuchCoverageFaultTestCase(eoxstest.ExceptionTestCase):
682 - def getRequest(self):
683 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=INVALID" 684 return (params, "kvp")
685
686 - def getExpectedHTTPStatus(self):
687 return 404
688
689 - def getExpectedExceptionCode(self):
690 return "NoSuchCoverage"
691
692 -class WCS20GetCoverageFormatUnsupportedFaultTestCase(eoxstest.ExceptionTestCase):
693 - def getRequest(self):
694 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/jpeg" 695 return (params, "kvp")
696
697 - def getExpectedExceptionCode(self):
698 return "InvalidParameterValue"
699
700 -class WCS20GetCoverageFormatUnknownFaultTestCase(eoxstest.ExceptionTestCase):
701 - def getRequest(self):
702 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=unknown" 703 return (params, "kvp")
704
705 - def getExpectedExceptionCode(self):
706 return "InvalidParameterValue"
707 708 #=============================================================================== 709 # WCS 2.0: Simple requests 710 #=============================================================================== 711
712 -class WCS20GetCoverageMosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
713 - def getRequest(self):
714 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff" 715 return (params, "kvp")
716
717 -class WCS20GetCoverageDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
718 - def getRequest(self):
719 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff" 720 return (params, "kvp")
721 722 #============================================================================== 723 # WCS 2.0: Formats 724 #============================================================================== 725 726 # WCS 2.0.1 introduced the native format, i.e., default format in case of missing format specification
727 -class WCS20GetCoverageNativeTestCase(eoxstest.RectifiedGridCoverageTestCase):
728 - def getRequest(self):
729 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced" 730 return (params, "kvp")
731
732 - def getFileExtension(self, part=None):
733 return "tif"
734
735 -class WCS20GetCoverageJPEG2000TestCase(eoxstest.RectifiedGridCoverageTestCase):
736 - def getRequest(self):
737 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/jp2" 738 return (params, "kvp")
739
740 - def getFileExtension(self, part=None):
741 return "jp2"
742
743 -class WCS20GetCoverageNetCDFTestCase(eoxstest.RectifiedGridCoverageTestCase):
744 - def getRequest(self):
745 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=application/x-netcdf" 746 return (params, "kvp")
747
748 - def getFileExtension(self, part=None):
749 return "nc"
750
751 -class WCS20GetCoverageHDFTestCase(eoxstest.RectifiedGridCoverageTestCase):
752 - def getRequest(self):
753 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=application/x-hdf" 754 return (params, "kvp")
755
756 - def getFileExtension(self, part=None):
757 return "hdf"
758
759 -class WCS20GetCoverageCompressionLZWTestCase(eoxstest.RectifiedGridCoverageTestCase):
760 - def getRequest(self):
761 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=%s" % quote("image/tiff;compress=LZW") 762 return (params, "kvp")
763
764 -class WCS20GetCoverageCompressionJPEGTestCase(eoxstest.RectifiedGridCoverageTestCase):
765 - def getRequest(self):
766 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=%s" % quote("image/tiff;compress=JPEG;jpeg_quality=50") 767 return (params, "kvp")
768
769 -class WCS20GetCoverageTiledTestCase(eoxstest.RectifiedGridCoverageTestCase):
770 - def getRequest(self):
771 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=%s" % quote ("image/tiff;tiled=YES") 772 return (params, "kvp")
773 774 # TODO: Enable test once subdatasets are supported (see #123): 775 #class WCS20GetCoverageNetCDFInputTestCase(eoxstest.RectifiedGridCoverageTestCase): 776 # def getRequest(self): 777 # params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_netCDF&format=image/tiff" 778 # return (params, "kvp") 779
780 -class WCS20GetCoverageJPEG2000InputTestCase(eoxstest.RectifiedGridCoverageTestCase):
781 - def getRequest(self):
782 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced_JPEG2000&format=image/tiff" 783 return (params, "kvp")
784 785 #=============================================================================== 786 # WCS 2.0: Multipart requests 787 #=============================================================================== 788
789 -class WCS20GetCoverageMultipartMosaicTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
790 - def getRequest(self):
791 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&mediatype=multipart/related" 792 return (params, "kvp")
793
794 -class WCS20GetCoverageMultipartDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
795 - def getRequest(self):
796 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related" 797 return (params, "kvp")
798 799 # TODO: wrong multipart parameters only result in non-multipart images. Uncomment, when implemented 800 #class WCS20GetCoverageWrongMultipartParameterFaultTestCase(eoxstest.ExceptionTestCase): 801 # def getRequest(self): 802 # params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&mediatype=multipart/something" 803 # return (params, "kvp") 804 # 805 # def getExpectedExceptionCode(self): 806 # return "InvalidParameterValue" 807 808 #=============================================================================== 809 # WCS 2.0: Subset requests 810 #=============================================================================== 811
812 -class WCS20GetCoverageSubsetDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
813 - def getRequest(self):
814 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=x(100,200)&subset=y(200,300)" 815 return (params, "kvp")
816
817 -class WCS20GetCoverageMultipartSubsetMosaicTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
818 - def getRequest(self):
819 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&mediatype=multipart/related&subset=x(100,1000)&subset=y(0,99)" 820 return (params, "kvp")
821
822 -class WCS20GetCoverageMultipartSubsetDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
823 - def getRequest(self):
824 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related&subset=x(100,200)&subset=y(200,300)" 825 return (params, "kvp")
826
827 -class WCS20GetCoverageSubsetEPSG4326DatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
828 - def getRequest(self):
829 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(20,22)" 830 return (params, "kvp")
831
832 -class WCS20GetCoverageSubsetEPSG4326MosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
833 - def getRequest(self):
834 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(0,30)" 835 return (params, "kvp")
836
837 -class WCS20GetCoverageSubsetInvalidEPSGFaultTestCase(eoxstest.ExceptionTestCase):
838 - def getRequest(self):
839 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&subset=x,http://www.opengis.net/def/crs/EPSG/0/99999(38,40)&subset=y,http://www.opengis.net/def/crs/EPSG/0/99999(20,22)" 840 return (params, "kvp")
841
842 - def getExpectedExceptionCode(self):
843 return "InvalidParameterValue"
844 845 #=============================================================================== 846 # WCS 2.0: OutputCRS 847 #=============================================================================== 848
849 -class WCS20GetCoverageOutputCRSDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
850 - def getRequest(self):
851 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3035" 852 return (params, "kvp")
853
854 -class WCS20GetCoverageOutputCRSotherUoMDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
855 - def getRequest(self):
856 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3857" 857 return (params, "kvp")
858 859 #=============================================================================== 860 # WCS 2.0: Size 861 #=============================================================================== 862
863 -class WCS20GetCoverageSizeDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
864 - def getRequest(self):
865 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&size=x(200)&size=y(200)" 866 return (params, "kvp")
867
868 -class WCS20GetCoverageSizeMosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
869 - def getRequest(self):
870 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&size=x(200)&size=y(400)" 871 return (params, "kvp")
872
873 -class WCS20GetCoverageSubsetSizeDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
874 - def getRequest(self):
875 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=x(100,200)&subset=y(200,300)&size=x(20)&size=y(20)" 876 return (params, "kvp")
877
878 -class WCS20GetCoverageSubsetEPSG4326SizeDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
879 - def getRequest(self):
880 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(20,22)&size=lat(20)&size=long(20)" 881 return (params, "kvp")
882
883 -class WCS20GetCoverageSubsetEPSG4326SizeExceedsExtentDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
884 - def getRequest(self):
885 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(10,50)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(0,50)&size=lat(100)&size=long(100)&mediatype=multipart/related" 886 return (params, "kvp")
887
888 -class WCS20GetCoverageInvalidSizeFaultTestCase(eoxstest.ExceptionTestCase):
889 - def getRequest(self):
890 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&size=x(1.11)" 891 return (params, "kvp")
892
893 - def getExpectedExceptionCode(self):
894 return "InvalidParameterValue"
895 896 #=============================================================================== 897 # WCS 2.0: Resolution 898 #=============================================================================== 899
900 -class WCS20GetCoverageResolutionDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
901 - def getRequest(self):
902 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&resolution=x(0.1)&resolution=y(0.1)" 903 return (params, "kvp")
904
905 -class WCS20GetCoverageResolutionMosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
906 - def getRequest(self):
907 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff&resolution=x(0.1)&resolution=y(0.1)" 908 return (params, "kvp")
909
910 -class WCS20GetCoverageSubsetResolutionDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
911 - def getRequest(self):
912 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=x(100,200)&subset=y(200,300)&resolution=x(0.1)&resolution=y(0.1)" 913 return (params, "kvp")
914
915 -class WCS20GetCoverageSubsetEPSG4326ResolutionLatLonDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
916 - def getRequest(self):
917 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(20,22)&resolution=lat(0.01)&resolution=long(0.01)" 918 return (params, "kvp")
919
920 -class WCS20GetCoverageSubsetEPSG4326ResolutionInvalidAxisDatasetFaultTestCase(eoxstest.ExceptionTestCase):
921 - def getRequest(self):
922 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(20,22)&resolution=x(0.01)&resolution=y(0.01)" 923 return (params, "kvp")
924
925 - def getExpectedExceptionCode(self):
926 return "InvalidParameterValue"
927 928 #=============================================================================== 929 # WCS 2.0: Rangesubset 930 #=============================================================================== 931
932 -class WCS20GetCoverageRangeSubsetIndicesDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
933 - def getRequest(self):
934 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&rangesubset=1,2,3" 935 return (params, "kvp")
936
937 -class WCS20GetCoverageRangeSubsetNamesDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
938 - def getRequest(self):
939 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&rangesubset=MERIS_radiance_04_uint16,MERIS_radiance_05_uint16,MERIS_radiance_06_uint16" 940 return (params, "kvp")
941
942 -class WCS20GetCoverageMultipartRangeSubsetNamesDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
943 - def getRequest(self):
944 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mediatype=multipart/related&rangesubset=MERIS_radiance_04_uint16,MERIS_radiance_05_uint16,MERIS_radiance_06_uint16" 945 return (params, "kvp")
946
947 -class WCS20GetCoverageSubsetSizeResolutionOutputCRSRangeSubsetIndicesDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
948 - def getRequest(self):
949 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&subset=x(100,200)&subset=y(200,300)&size=y(100)&resolution=x(0.1)&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3035&rangesubset=1,2,3&mediatype=multipart/related" 950 return (params, "kvp")
951 952 #=============================================================================== 953 # WCS 2.0: Polygon Mask 954 #=============================================================================== 955 956 # TODO: Enable these tests once the feature is implemented in MapServer 957 958 #class WCS20GetCoveragePolygonMaskTestCase(eoxstest.RectifiedGridCoverageTestCase): 959 # def getRequest(self): 960 # params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mask=polygon(14.124422306243844,42.806626286621963,21.208516509273601,43.730638573973678,21.208516509273601,43.730638573973678,21.892970055460054,37.8443380767702,15.04843459359555,36.646544370943914,12.379065763468395,39.555471942236323,14.124422306243844,42.806626286621963)" 961 # return (params, "kvp") 962 963 964 #class WCS20GetCoveragePolygonMaskProjectedTestCase(eoxstest.RectifiedGridCoverageTestCase): 965 # def getRequest(self): # TODO: swap axes 966 # params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed&format=image/tiff&mask=polygon,http://www.opengis.net/def/crs/EPSG/0/4326(42.806626286621963,14.124422306243844,43.730638573973678,21.208516509273601,43.730638573973678,21.208516509273601,37.8443380767702,21.892970055460054,36.646544370943914,15.04843459359555,39.555471942236323,12.379065763468395,42.806626286621963,14.124422306243844)" 967 # return (params, "kvp") 968 969 #class WCS20PostGetCoveragePolygonMaskTestCase(eoxstest.RectifiedGridCoverageTestCase): 970 # def getRequest(self): 971 # params = """<wcs:GetCoverage service="WCS" version="2.0.0" 972 # xmlns:wcs="http://www.opengis.net/wcs/2.0" 973 # xmlns:wcsmask="http://www.opengis.net/wcs/mask/1.0"> 974 # <wcs:CoverageId>MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed</wcs:CoverageId> 975 # <wcs:format>image/tiff</wcs:format> 976 # <wcs:Extension> 977 # <wcsmask:polygonMask>14.124422306243844 42.806626286621963 21.208516509273601 43.730638573973678 21.208516509273601 43.730638573973678 21.892970055460054 37.8443380767702 15.04843459359555 36.646544370943914 12.379065763468395 39.555471942236323 14.124422306243844 42.806626286621963</wcsmask:polygonMask> 978 # </wcs:Extension> 979 # </wcs:GetCoverage>""" 980 # return (params, "xml") 981 982 #=============================================================================== 983 # WCS 2.0 Rasdaman test cases 984 #=============================================================================== 985
986 -class WCS20GetCoverageRasdamanMultipartDatasetTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
987 - def getRequest(self):
988 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related" 989 return (params, "kvp")
990
991 -class WCS20GetCoverageRasdamanMultipartDatasetSubsetTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
992 - def getRequest(self):
993 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&subset=x(100,200)&subset=y(200,300)" 994 return (params, "kvp")
995
996 -class WCS20GetCoverageRasdamanMultipartDatasetSizeTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
997 - def getRequest(self):
998 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&size=x(100)&size=y(100)" 999 return (params, "kvp")
1000
1001 -class WCS20GetCoverageRasdamanMultipartDatasetResolutionTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1002 - def getRequest(self):
1003 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&resolution=x(0.1)&resolution=y(0.1)" 1004 return (params, "kvp")
1005
1006 -class WCS20GetCoverageRasdamanMultipartDatasetOutputCRSTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1007 - def getRequest(self):
1008 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3035" 1009 return (params, "kvp")
1010
1011 -class WCS20GetCoverageRasdamanMultipartDatasetSubsetSizeTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1012 - def getRequest(self):
1013 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&subset=x(100,200)&subset=y(200,300)&size=x(20)&size=y(20)" 1014 return (params, "kvp")
1015
1016 -class WCS20GetCoverageRasdamanMultipartDatasetSubsetResolutionTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1017 - def getRequest(self):
1018 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&subset=x(100,200)&subset=y(200,300)&resolution=x(0.1)&resolution=y(0.1)" 1019 return (params, "kvp")
1020
1021 -class WCS20GetCoverageRasdamanMultipartDatasetRangeSubsetTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1022 - def getRequest(self):
1023 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&mediatype=multipart/related&rangesubset=1" 1024 return (params, "kvp")
1025
1026 -class WCS20GetCoverageRasdamanSubsetSizeResolutionOutputCRSRangeSubsetIndicesDatasetTestCase(eoxstest.RasdamanTestCaseMixIn, eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1027 - def getRequest(self):
1028 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced_rasdaman&format=image/tiff&subset=x(100,200)&subset=y(200,300)&size=y(100)&resolution=x(0.1)&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3035&rangesubset=1,2,3&mediatype=multipart/related" 1029 return (params, "kvp")
1030 1031 1032 #=============================================================================== 1033 # WCS 2.0: GetCov with EPSG:3035 input images 1034 #=============================================================================== 1035
1036 -class WCS20DescribeCoverageReprojectedDatasetTestCase(eoxstest.XMLTestCase):
1037 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1038 - def getRequest(self):
1039 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected" 1040 return (params, "kvp")
1041
1042 -class WCS20GetCoverageReprojectedDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
1043 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1044 - def getRequest(self):
1045 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected&format=image/tiff" 1046 return (params, "kvp")
1047
1048 -class WCS20GetCoverageReprojectedSubsetDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
1049 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1050 - def getRequest(self):
1051 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected&format=image/tiff&subset=x(100,200)&subset=y(200,300)" 1052 return (params, "kvp")
1053
1054 -class WCS20GetCoverageReprojectedSubsetEPSG4326DatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1055 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1056 - def getRequest(self):
1057 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected&format=image/tiff&mediatype=multipart/related&subset=lat,http://www.opengis.net/def/crs/EPSG/0/4326(38,40)&subset=long,http://www.opengis.net/def/crs/EPSG/0/4326(20,22)" 1058 return (params, "kvp")
1059
1060 -class WCS20GetCoverageReprojectedMultipartDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1061 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1062 - def getRequest(self):
1063 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected&format=image/tiff&mediatype=multipart/related" 1064 return (params, "kvp")
1065
1066 -class WCS20GetCoverageReprojectedEPSG3857DatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1067 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"]
1068 - def getRequest(self):
1069 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected&format=image/tiff&mediatype=multipart/related&outputcrs=http://www.opengis.net/def/crs/EPSG/0/3857" 1070 return (params, "kvp")
1071 1072 #=============================================================================== 1073 # WCS 2.0 Referenceable Grid Coverages 1074 #=============================================================================== 1075
1076 -class WCS20DescribeCoverageReferenceableDatasetTestCase(eoxstest.XMLTestCase):
1077 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeCoverage response for a wcseo:ReferenceableDataset."""
1078 - def getRequest(self):
1079 params = "service=WCS&version=2.0.0&request=DescribeCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775" 1080 return (params, "kvp")
1081
1082 -class WCS20GetCoverageReferenceableDatasetTestCase(eoxstest.WCS20GetCoverageReferenceableGridCoverageMultipartTestCase):
1083 - def getRequest(self):
1084 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775&format=image/tiff&mediatype=multipart/related" 1085 return (params, "kvp")
1086
1087 -class WCS20GetCoverageReferenceableDatasetImageCRSSubsetTestCase(eoxstest.WCS20GetCoverageReferenceableGridCoverageMultipartTestCase):
1088 - def getRequest(self):
1089 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775&format=image/tiff&mediatype=multipart/related&subset=x(0,99)&subset=y(0,99)" 1090 return (params, "kvp")
1091
1092 -class WCS20GetCoverageReferenceableDatasetGeogCRSSubsetTestCase(eoxstest.WCS20GetCoverageReferenceableGridCoverageMultipartTestCase):
1093 - def getRequest(self):
1094 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775&format=image/tiff&mediatype=multipart/mixed&subset=x,http://www.opengis.net/def/crs/EPSG/0/4326(18.0,20.0)&subset=y,http://www.opengis.net/def/crs/EPSG/0/4326(-34.5,-33.5)" 1095 return (params, "kvp")
1096
1097 -class WCS20GetCoverageReferenceableDatasetGeogCRSSubsetExceedsExtentTestCase(eoxstest.WCS20GetCoverageReferenceableGridCoverageMultipartTestCase):
1098 - def getRequest(self):
1099 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775&format=image/tiff&mediatype=multipart/mixed&subset=x,http://www.opengis.net/def/crs/EPSG/0/4326(18,23)&subset=y,http://www.opengis.net/def/crs/EPSG/0/4326(-35,-33)" 1100 return (params, "kvp")
1101
1102 -class WCS20GetCoverageReferenceableDatasetGeogCRSSubsetOutsideExtentTestCase(eoxstest.ExceptionTestCase):
1103 - def getRequest(self):
1104 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775&format=image/tiff&mediatype=multipart/mixed&subset=x,http://www.opengis.net/def/crs/EPSG/0/4326(14.5,16.5)&subset=y,http://www.opengis.net/def/crs/EPSG/0/4326(-34.5,-33.5)" 1105 return (params, "kvp")
1106
1107 - def getExpectedHTTPStatus(self):
1108 return 400
1109
1110 - def getExpectedExceptionCode(self):
1111 return "InvalidParameterValue"
1112 1113 #=============================================================================== 1114 # WCS 2.0.1 Corrigendum test cases 1115 #=============================================================================== 1116 1117
1118 -class WCS20CorrigendumGetCapabilitiesEmptyTestCase(eoxstest.XMLTestCase):
1119 """This test shall retrieve a valid but empty WCS 2.0.1 EO-AP (EO-WCS) GetCapabilities response (see #162)""" 1120 fixtures = BASE_FIXTURES 1121
1122 - def getRequest(self):
1123 params = "service=WCS&version=2.0.1&request=GetCapabilities" 1124 return (params, "kvp")
1125 1126
1127 -class WCS20CorrigendumDescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
1128 """This test shall retrieve a valid WCS 2.0.1 EO-AP (EO-WCS) DescribeCoverage response for a wcseo:RectifiedDataset (see #162)."""
1129 - def getRequest(self):
1130 params = "service=WCS&version=2.0.1&request=DescribeCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed" 1131 return (params, "kvp")
1132 1133
1134 -class WCS20CorrigendumDescribeEOCoverageSetMosaicTestCase(eoxstest.XMLTestCase):
1135 """This test shall retrieve a valid WCS 2.0.1 EO-AP (EO-WCS) DescribeEOCoverageSet response for a wcseo:RectifiedStitchedMosaic (see #162)"""
1136 - def getRequest(self):
1137 params = "service=WCS&version=2.0.1&request=DescribeEOCoverageSet&eoId=mosaic_MER_FRS_1P_RGB_reduced" 1138 return (params, "kvp")
1139 1140
1141 -class WCS20CorrigendumGetCoverageDatasetTestCase(eoxstest.RectifiedGridCoverageTestCase):
1142 - def getRequest(self):
1143 params = "service=wcs&version=2.0.1&request=GetCoverage&CoverageId=MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed" 1144 return (params, "kvp")
1145 1146 1147 #=============================================================================== 1148 # WCS 2.0 - POST 1149 #=============================================================================== 1150
1151 -class WCS20PostGetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1152 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response 1153 via POST. 1154 """
1155 - def getRequest(self):
1156 params = """<ns:GetCapabilities updateSequence="u2001" service="WCS" 1157 xmlns:ns="http://www.opengis.net/wcs/2.0" 1158 xmlns:ns1="http://www.opengis.net/ows/2.0"> 1159 <ns1:AcceptVersions><ns1:Version>2.0.0</ns1:Version></ns1:AcceptVersions> 1160 </ns:GetCapabilities> 1161 """ 1162 return (params, "xml")
1163
1164 -class WCS20PostDescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
1165 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeCoverage response 1166 for a wcseo:RectifiedDataset via POST. 1167 """
1168 - def getRequest(self):
1169 params = """<ns:DescribeCoverage 1170 xmlns:ns="http://www.opengis.net/wcs/2.0" service="WCS" version="2.0.0"> 1171 <ns:CoverageId>MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed</ns:CoverageId> 1172 </ns:DescribeCoverage>""" 1173 return (params, "xml")
1174
1175 -class WCS20PostDescribeEOCoverageSetDatasetSeriesTestCase(eoxstest.XMLTestCase):
1176 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) DescribeEOCoverageSet response 1177 for a wcseo:RectifiedDatasetSeries via POST. 1178 """
1179 - def getRequest(self):
1180 params = """<wcseo:DescribeEOCoverageSet service="WCS" version="2.0.0" count="100" 1181 xmlns:wcseo="http://www.opengis.net/wcseo/1.0" 1182 xmlns:wcs="http://www.opengis.net/wcs/2.0"> 1183 <wcseo:eoId>MER_FRS_1P_reduced</wcseo:eoId> 1184 <wcseo:containment>OVERLAPS</wcseo:containment> 1185 <wcseo:Sections> 1186 <wcseo:Section>All</wcseo:Section> 1187 </wcseo:Sections> 1188 <wcs:DimensionTrim> 1189 <wcs:Dimension>Long</wcs:Dimension> 1190 <wcs:TrimLow>16</wcs:TrimLow> 1191 <wcs:TrimHigh>18</wcs:TrimHigh> 1192 </wcs:DimensionTrim> 1193 <wcs:DimensionTrim> 1194 <wcs:Dimension>Lat</wcs:Dimension> 1195 <wcs:TrimLow>46</wcs:TrimLow> 1196 <wcs:TrimHigh>48</wcs:TrimHigh> 1197 </wcs:DimensionTrim> 1198 </wcseo:DescribeEOCoverageSet>""" 1199 return (params, "xml")
1200
1201 -class WCS20PostGetCoverageMultipartDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1202 - def getRequest(self):
1203 params = """<wcs:GetCoverage service="WCS" version="2.0.1" 1204 xmlns:wcs="http://www.opengis.net/wcs/2.0"> 1205 <wcs:CoverageId>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</wcs:CoverageId> 1206 <wcs:format>image/tiff</wcs:format> 1207 <wcs:mediaType>multipart/related</wcs:mediaType> 1208 </wcs:GetCoverage>""" 1209 return (params, "xml")
1210
1211 -class WCS20PostGetCoverageSubsetMultipartDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase):
1212 - def getRequest(self):
1213 params = """<wcs:GetCoverage service="WCS" version="2.0.1" 1214 xmlns:wcs="http://www.opengis.net/wcs/2.0"> 1215 <wcs:CoverageId>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</wcs:CoverageId> 1216 <wcs:DimensionTrim> 1217 <wcs:Dimension>x</wcs:Dimension> 1218 <wcs:TrimLow>0</wcs:TrimLow> 1219 <wcs:TrimHigh>99</wcs:TrimHigh> 1220 </wcs:DimensionTrim> 1221 <wcs:DimensionTrim> 1222 <wcs:Dimension>y</wcs:Dimension> 1223 <wcs:TrimLow>0</wcs:TrimLow> 1224 <wcs:TrimHigh>99</wcs:TrimHigh> 1225 </wcs:DimensionTrim> 1226 <wcs:format>image/tiff</wcs:format> 1227 <wcs:mediaType>multipart/related</wcs:mediaType> 1228 </wcs:GetCoverage>""" 1229 return (params, "xml")
1230 1231 # TODO: Enable once CRS handling with POST requests is implemented in MapServer 1232 # TODO: Adjust to final namespace maybe "http://www.opengis.net/wcs_service-extension_crs/1.0" 1233 #class WCS20PostGetCoverageSubsetEPSG4326MultipartDatasetTestCase(eoxstest.WCS20GetCoverageRectifiedGridCoverageMultipartTestCase): 1234 # def getRequest(self): 1235 # params = """<wcs:GetCoverage service="WCS" version="2.0.1" 1236 # xmlns:wcs="http://www.opengis.net/wcs/2.0" 1237 # xmlns:wcscrs="http://www.opengis.net/wcs/extensions/crs/1.0"> 1238 # <wcs:Extension> 1239 # <wcscrs:GetCoverageCrs> 1240 # <wcscrs:subsettingCrs>http://www.opengis.net/def/crs/EPSG/0/4326</wcscrs:subsettingCrs> 1241 # </wcscrs:GetCoverageCrs> 1242 # </wcs:Extension> 1243 # <wcs:CoverageId>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</wcs:CoverageId> 1244 # <wcs:DimensionTrim> 1245 # <wcs:Dimension>Long</wcs:Dimension> 1246 # <wcs:TrimLow>20</wcs:TrimLow> 1247 # <wcs:TrimHigh>22</wcs:TrimHigh> 1248 # </wcs:DimensionTrim> 1249 # <wcs:DimensionTrim> 1250 # <wcs:Dimension>Lat</wcs:Dimension> 1251 # <wcs:TrimLow>36</wcs:TrimLow> 1252 # <wcs:TrimHigh>38</wcs:TrimHigh> 1253 # </wcs:DimensionTrim> 1254 # <wcs:format>image/tiff</wcs:format> 1255 # <wcs:mediaType>multipart/related</wcs:mediaType> 1256 # </wcs:GetCoverage>""" 1257 # return (params, "xml") 1258
1259 -class WCS20PostGetCoverageReferenceableMultipartDatasetTestCase(eoxstest.WCS20GetCoverageReferenceableGridCoverageMultipartTestCase):
1260 - def getRequest(self):
1261 params = """<wcs:GetCoverage service="WCS" version="2.0.1" 1262 xmlns:wcs="http://www.opengis.net/wcs/2.0"> 1263 <wcs:CoverageId>ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775</wcs:CoverageId> 1264 <wcs:DimensionTrim> 1265 <wcs:Dimension>x</wcs:Dimension> 1266 <wcs:TrimLow>0</wcs:TrimLow> 1267 <wcs:TrimHigh>100</wcs:TrimHigh> 1268 </wcs:DimensionTrim> 1269 <wcs:DimensionTrim> 1270 <wcs:Dimension>y</wcs:Dimension> 1271 <wcs:TrimLow>0</wcs:TrimLow> 1272 <wcs:TrimHigh>100</wcs:TrimHigh> 1273 </wcs:DimensionTrim> 1274 <wcs:format>image/tiff</wcs:format> 1275 <wcs:mediaType>multipart/related</wcs:mediaType> 1276 </wcs:GetCoverage>""" 1277 return (params, "xml")
1278 1279 #=============================================================================== 1280 # WCS 1.1 - POST 1281 #=============================================================================== 1282
1283 -class WCS11PostGetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1284 """This test shall retrieve a valid WCS 1.1 GetCapabilities response via POST. 1285 """
1286 - def getRequest(self):
1287 params = """<ns:GetCapabilities xmlns:ns="http://www.opengis.net/wcs/1.1" 1288 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1289 xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCapabilities.xsd" 1290 service="WCS" version="1.1.2"/>""" 1291 return (params, "xml")
1292
1293 -class WCS11PostDescribeCoverageDatasetTestCase(eoxstest.XMLTestCase):
1294 """This test shall retrieve a valid WCS 1.1 DescribeCoverage response for a 1295 wcseo:RectifiedDataset via POST. 1296 """
1297 - def getRequest(self):
1298 params = """<DescribeCoverage xmlns="http://www.opengis.net/wcs/1.1" 1299 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1300 xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsDescribeCoverage.xsd" 1301 service="WCS" version="1.1.2"> 1302 <Identifier>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</Identifier> 1303 </DescribeCoverage>""" 1304 return (params, "xml")
1305
1306 -class WCS11PostDescribeCoverageMosaicTestCase(eoxstest.XMLTestCase):
1307 """This test shall retrieve a valid WCS 1.1 DescribeCoverage response for a 1308 wcseo:RectifiedStitchedMosaic via POST. 1309 """
1310 - def getRequest(self):
1311 params = """<DescribeCoverage xmlns="http://www.opengis.net/wcs/1.1" 1312 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1313 xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsDescribeCoverage.xsd" 1314 service="WCS" version="1.1.2"> 1315 <Identifier>mosaic_MER_FRS_1P_RGB_reduced</Identifier> 1316 </DescribeCoverage>""" 1317 return (params, "xml")
1318
1319 -class WCS11PostGetCoverageDatasetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
1320 - def getRequest(self):
1321 params = """<GetCoverage xmlns="http://www.opengis.net/wcs/1.1" 1322 xmlns:ows="http://www.opengis.net/ows/1.1" 1323 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1324 xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd" 1325 service="WCS" version="1.1.2"> 1326 <ows:Identifier>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</ows:Identifier> 1327 <DomainSubset> 1328 <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::4326"> 1329 <ows:LowerCorner>32 12</ows:LowerCorner> 1330 <ows:UpperCorner>46.5 28</ows:UpperCorner> 1331 </ows:BoundingBox> 1332 </DomainSubset> 1333 <Output format="image/tiff"/> 1334 </GetCoverage>""" 1335 return (params, "xml")
1336
1337 -class WCS11PostGetCoverageMosaicTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase):
1338 - def getRequest(self):
1339 params = """<GetCoverage xmlns="http://www.opengis.net/wcs/1.1" 1340 xmlns:ows="http://www.opengis.net/ows/1.1" 1341 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1342 xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd" 1343 service="WCS" version="1.1.2"> 1344 <ows:Identifier>mosaic_MER_FRS_1P_RGB_reduced</ows:Identifier> 1345 <DomainSubset> 1346 <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::4326"> 1347 <ows:LowerCorner>32 -4</ows:LowerCorner> 1348 <ows:UpperCorner>46.5 28</ows:UpperCorner> 1349 </ows:BoundingBox> 1350 </DomainSubset> 1351 <Output format="image/tiff"/> 1352 </GetCoverage>""" 1353 return (params, "xml")
1354 1355 # TODO: Not working because of a bug in MapServer 1356 #class WCS11PostGetCoverageDatasetSubsetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase): 1357 # def getRequest(self): 1358 # params = """<GetCoverage xmlns="http://www.opengis.net/wcs/1.1" 1359 # xmlns:ows="http://www.opengis.net/ows/1.1" 1360 # xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1361 # xsi:schemaLocation="http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd" 1362 # service="WCS" version="1.1.2"> 1363 # <ows:Identifier>mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced</ows:Identifier> 1364 # <DomainSubset> 1365 # <ows:BoundingBox crs="urn:ogc:def:crs:OGC::imageCRS"> 1366 # <ows:LowerCorner>0 0</ows:LowerCorner> 1367 # <ows:UpperCorner>550 440</ows:UpperCorner> 1368 # </ows:BoundingBox> 1369 # </DomainSubset> 1370 # <Output format="image/tiff"> 1371 # <GridCRS> 1372 # <GridBaseCRS>urn:ogc:def:crs:EPSG::4326</GridBaseCRS> 1373 # <GridType>urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs</GridType> 1374 # <GridOrigin>0 0</GridOrigin> 1375 # <GridOffsets>2 2</GridOffsets> 1376 # <GridCS>urn:ogc:def:crs:OGC::imageCRS</GridCS> 1377 # </GridCRS> 1378 # </Output> 1379 # </GetCoverage>""" 1380 # return (params, "xml") 1381 1382 #class WCS11PostGetCoverageDatasetSubsetEPSG4326TestCase(eoxstest.RectifiedGridCoverageMultipartTestCase): 1383 # def getRequest(self): 1384 # params = """""" 1385 ##boundingbox=32,12,46.5,28,urn:ogc:def:crs:EPSG::4326&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=46.5,12&GridOffsets=0.06,0.06" 1386 # return (params, "xml") 1387 1388 #class WCS11PostGetCoverageMosaicSubsetTestCase(eoxstest.RectifiedGridCoverageMultipartTestCase): 1389 # def getRequest(self): 1390 # params = """""" 1391 ##boundingbox=300,200,700,350,urn:ogc:def:crs:OGC::imageCRS&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=0,0&GridOffsets=2,2" 1392 # return (params, "xml") 1393 1394 #class WCS11PostGetCoverageMosaicSubsetEPSG4326TestCase(eoxstest.RectifiedGridCoverageMultipartTestCase): 1395 # def getRequest(self): 1396 # params = """""" 1397 ##boundingbox=35,10,42,20,urn:ogc:def:crs:EPSG::4326&GridCS=urn:ogc:def:crs:OGC::imageCRS&GridType=urn:ogc:def:method:WCS:1.1:2dGridIn2dCrs&GridOrigin=40,10&GridOffsets=-0.06,0.06" 1398 # return (params, "xml") 1399 1400 1401 #=============================================================================== 1402 # WMS 1403 #=============================================================================== 1404
1405 -class WMS11GetCapabilitiesValidTestCase(eoxstest.OWSTestCase):
1406 """This test shall retrieve a valid WMS 1.1 GetCapabilities response"""
1407 - def getRequest(self):
1408 params = "service=WMS&version=1.1.1&request=GetCapabilities" 1409 return (params, "kvp")
1410
1411 -class WMS13GetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1412 """This test shall retrieve a valid WMS 1.3 GetCapabilities response"""
1413 - def getRequest(self):
1414 params = "service=WMS&version=1.3.0&request=GetCapabilities" 1415 return (params, "kvp")
1416
1417 -class WMS13GetCapabilitiesEmptyTestCase(eoxstest.XMLTestCase):
1418 """This test shall retrieve a valid but empty WMS 1.3 GetCapabilities response (see #41)""" 1419 fixtures = BASE_FIXTURES 1420
1421 - def getRequest(self):
1422 params = "service=WMS&version=1.3.0&request=GetCapabilities" 1423 return (params, "kvp")
1424
1425 -class WMS13GetMapDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1426 """ Test a GetMap request with a simple dataset. """ 1427 layers = ("mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced",) 1428 bbox = (8.487755775451660, 32.195316643454134, 25.407486727461219, 46.249103546142578)
1429
1430 -class WMS13GetMapNoServiceParameterTestCase(eoxstest.RasterTestCase):
1431 """This test shall retrieve a map while omitting the service parameter. """
1432 - def getRequest(self):
1433 params = "version=1.3.0&request=GetMap&" \ 1434 "layers=mosaic_MER_FRS_1P_RGB_reduced&styles=&crs=epsg:4326&" \ 1435 "bbox=35,10,45,20&width=100&height=100&format=image/tiff" 1436 return (params, "kvp")
1437
1438 -class WMS11GetMapMultipleDatasetsTestCase(eoxstest.WMS11GetMapTestCase):
1439 """ Test a GetMap request with two datasets. """ 1440 layers = ("mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 1441 "mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced", 1442 ) 1443 width = 200 1444 bbox = (-3.75, 32.19025, 28.29481, 46.268645)
1445
1446 -class WMS13GetMapMultipleDatasetsTestCase(eoxstest.WMS13GetMapTestCase):
1447 """ Test a GetMap request with two datasets. """ 1448 layers = ("mosaic_MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_RGB_reduced", 1449 "mosaic_MER_FRS_1PNPDE20060830_100949_000001972050_00423_23523_0079_RGB_reduced", 1450 ) 1451 width = 200 1452 bbox = (-3.75, 32.19025, 28.29481, 46.268645)
1453
1454 -class WMS13GetMapDatasetMultispectralTestCase(eoxstest.WMS13GetMapTestCase):
1455 """ Test a GetMap request with a dataset containing 15 bands. """ 1456 layers = ("MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed",) 1457 bbox = (8.487755775451660, 32.195316643454134, 25.407486727461219, 46.249103546142578)
1458
1459 -class WMS13GetMapMosaicTestCase(eoxstest.WMS13GetMapTestCase):
1460 """ Test a GetMap request with a stitched mosaic. """ 1461 layers = ("mosaic_MER_FRS_1P_RGB_reduced",) 1462 bbox = (-3.75, 32.158895, 28.326165, 46.3) 1463 width = 200
1464
1465 -class WMS13GetMapPNGDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1466 """ Test a GetMap request with a dataset series. """ 1467 layers = ("mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced",) 1468 bbox = (8.5, 32.2, 25.4, 46.3) 1469 frmt = "image/png"
1470
1471 -class WMS13GetMapGIFDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1472 """ Test a GetMap request with a dataset series. """ 1473 layers = ("mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced",) 1474 bbox = (8.5, 32.2, 25.4, 46.3) 1475 frmt = "image/gif"
1476
1477 -class WMS13GetMapTIFFDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1478 """ Test a GetMap request with a dataset series. """ 1479 layers = ("mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced",) 1480 bbox = (8.5, 32.2, 25.4, 46.3) 1481 frmt = "image/tiff"
1482
1483 -class WMS13GetMapLayerNotDefinedFaultTestCase(eoxstest.WMS13ExceptionTestCase):
1484 - def getRequest(self):
1485 params = "service=WMS&version=1.3.0&request=GetMap&layers=INVALIDLAYER&bbox=0,0,1,1&crs=EPSG:4326&width=10&height=10&exceptions=XML&format=image/png" 1486 return (params, "kvp")
1487
1488 - def getExpectedExceptionCode(self):
1489 return "LayerNotDefined"
1490
1491 -class WMS13GetMapFormatUnknownFaultTestCase(eoxstest.WMS13ExceptionTestCase):
1492 - def getRequest(self):
1493 params = "service=WMS&version=1.3.0&request=GetMap&layers=MER_FRS_1P_reduced&bbox=-32,-4,46,28&crs=EPSG:4326&width=100&height=100&format=image/INVALID&exceptions=application/vnd.ogc.se_xml" 1494 return (params, "kvp")
1495
1496 - def getExpectedExceptionCode(self):
1497 return "InvalidFormat"
1498
1499 -class WMS13GetMapInvalidBoundingBoxTestCase(eoxstest.WMS13ExceptionTestCase):
1500 - def getRequest(self):
1501 params = "service=WMS&version=1.3.0&request=GetMap&layers=MER_FRS_1P_reduced&bbox=1,2,3&crs=EPSG:4326&width=100&height=100&format=image/jpeg&exceptions=application/vnd.ogc.se_xml" 1502 return (params, "kvp")
1503
1504 - def getExpectedExceptionCode(self):
1505 return "InvalidParameterValue"
1506
1507 -class WMS13GetMapInvalidCRSTestCase(eoxstest.WMS13ExceptionTestCase):
1508 - def getRequest(self):
1509 params = "service=WMS&version=1.3.0&request=GetMap&layers=MER_FRS_1P_reduced&bbox=0,0,1,1&crs=INVALIDCRS&width=100&height=100&format=image/jpeg&exceptions=application/vnd.ogc.se_xml" 1510 return (params, "kvp")
1511
1512 - def getExpectedExceptionCode(self):
1513 return "InvalidCRS"
1514
1515 -class WMS13GetMapReferenceableGridTestCase(eoxstest.WMS13GetMapTestCase):
1516 layers = ("ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775", ) 1517 bbox = (17.0, -36.0, 22.0, -32.0) 1518 width = 500 1519 height = 400
1520
1521 -class WMS13GetMapReferenceableGridReprojectionTestCase(eoxstest.WMS13GetMapTestCase):
1522 layers = ("ASA_WSM_1PNDPA20050331_075939_000000552036_00035_16121_0775", ) 1523 crs = "epsg:32734" 1524 bbox = (122043.08622624225, 6008645.867004246, 594457.4634022854, 6459127.468615601) 1525 width = 472 1526 height = 451 1527 swap_axes = False
1528
1529 -class WMS13GetMapDatasetSeriesTestCase(eoxstest.WMS13GetMapTestCase):
1530 """ Test a GetMap request with a dataset series. """ 1531 layers = ("MER_FRS_1P_RGB_reduced",) 1532 width = 200 1533 bbox = (-3.75, 32.158895, 28.326165, 46.3)
1534
1535 -class WMS13GetMapDatasetSeriesTimePointTestCase(eoxstest.WMS13GetMapTestCase):
1536 layers = ("MER_FRS_1P_RGB_reduced",) 1537 width = 200 1538 bbox = (-3.75, 32.158895, 28.326165, 46.3) 1539 time = "2006-08-30T10:09:49Z"
1540
1541 -class WMS13GetMapDatasetSeriesTimeIntervalTestCase(eoxstest.WMS13GetMapTestCase):
1542 layers = ("MER_FRS_1P_RGB_reduced",) 1543 width = 200 1544 bbox = (-3.75, 32.158895, 28.326165, 46.3) 1545 time = "2006-08-01T00:00:00Z/2006-08-22T23:59:59Z"
1546
1547 -class WMS13GetMapDatasetSeriesOutlinesTestCase(eoxstest.WMS13GetMapTestCase):
1548 layers = ("MER_FRS_1P_reduced_outlines",) 1549 width = 200 1550 bbox = (-3.75, 32.158895, 28.326165, 46.3)
1551
1552 -class WMS13GetMapRectifiedStitchedMosaicOutlinesTestCase(eoxstest.WMS13GetMapTestCase):
1553 layers = ("mosaic_MER_FRS_1P_RGB_reduced_outlines",) 1554 width = 200 1555 bbox = (-3.75, 32.158895, 28.326165, 46.3)
1556
1557 -class WMS13GetMapRectifiedStitchedMosaicOutlinesWhiteTestCase(eoxstest.WMS13GetMapTestCase):
1558 layers = ("mosaic_MER_FRS_1P_RGB_reduced_outlines",) 1559 width = 200 1560 bbox = (-3.75, 32.158895, 28.326165, 46.3) 1561 styles = ("white",)
1562
1563 -class WMS13GetMapDatasetSeriesOutlinesTimeIntervalTestCase(eoxstest.WMS13GetMapTestCase):
1564 layers = ("MER_FRS_1P_RGB_reduced_outlines",) 1565 width = 200 1566 bbox = (-3.75, 32.158895, 28.326165, 46.3) 1567 time = "2006-08-16T09:09:29Z/2006-08-16T09:15:46Z"
1568
1569 -class WMS13GetMapDatasetOneBandTestCase(eoxstest.WMS13GetMapTestCase):
1570 """ Test a GetMap request with a dataset containing 15 bands. """ 1571 layers = ("MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed_bands",) 1572 bbox = (8.487755775451660, 32.195316643454134, 25.407486727461219, 46.249103546142578) 1573 dim_band = "MERIS_radiance_01_uint16"
1574
1575 -class WMS13GetMapDatasetThreeBandsTestCase(eoxstest.WMS13GetMapTestCase):
1576 """ Test a GetMap request with a dataset containing 15 bands. """ 1577 layers = ("MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_uint16_reduced_compressed_bands",) 1578 bbox = (8.487755775451660, 32.195316643454134, 25.407486727461219, 46.249103546142578) 1579 dim_band = "MERIS_radiance_02_uint16,MERIS_radiance_08_uint16,MERIS_radiance_12_uint16"
1580
1581 -class WMS13GetMapReprojectedDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1582 """ Test a GetMap request with a reprojected dataset. """ 1583 fixtures = eoxstest.OWSTestCase.fixtures + ["testing_reprojected_coverages.json"] 1584 1585 layers = ("MER_FRS_1PNPDE20060816_090929_000001972050_00222_23322_0058_uint16_reduced_compressed_reprojected",) 1586 bbox = (8.487755775451660, 32.195316643454134, 25.407486727461219, 46.249103546142578)
1587 1588
1589 -class WMS13GetMapCrossesDatelineDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1590 """ Test a GetMap request with a reprojected dataset. """ 1591 fixtures = BASE_FIXTURES + ["testing_crosses_dateline.json"] 1592 1593 layers = ("crosses_dateline",) 1594 bbox = (-180, -90, 180, 90) 1595 width = 200
1596 1597
1598 -class WMS13GetFeatureInfoTestCase(eoxstest.HTMLTestCase):
1599 """ Test a GetFeatureInfo on an outline layer. """ 1600
1601 - def getRequest(self):
1602 params = "SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=MER_FRS_1P_RGB_reduced_outlines&QUERY_LAYERS=MER_FRS_1P_RGB_reduced_outlines&STYLES=&BBOX=32.158895,-3.75,46.3,28.326165&FEATURE_COUNT=10&HEIGHT=100&WIDTH=200&FORMAT=image%2Fpng&INFO_FORMAT=text/html&CRS=EPSG:4326&I=100&J=50"; 1603 return (params, "kvp")
1604
1605 -class WMS13GetFeatureInfoTimeIntervalTestCase(eoxstest.HTMLTestCase):
1606 """ Test a GetFeatureInfo on an outline layer with a given time slice. """ 1607
1608 - def getRequest(self):
1609 params = "SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=MER_FRS_1P_RGB_reduced_outlines&QUERY_LAYERS=MER_FRS_1P_RGB_reduced_outlines&STYLES=&BBOX=24.433594,-8.986816,60.205078,58.908691&FEATURE_COUNT=10&HEIGHT=814&WIDTH=1545&FORMAT=image%2Fpng&INFO_FORMAT=text/html&CRS=EPSG:4326&I=598&J=504&TIME=2006-08-16T09:09:29Z/2006-08-16T09:12:46Z"; 1610 return (params, "kvp")
1611 1612
1613 -class WMS13GetFeatureInfoEmptyTestCase(eoxstest.HTMLTestCase):
1614 """ Test a GetFeatureInfo request not hitting any datasets because of spatial/temporal bounds. """ 1615
1616 - def getRequest(self):
1617 params = "LAYERS=MER_FRS_1P_RGB_reduced_outlines&QUERY_LAYERS=MER_FRS_1P_RGB_reduced_outlines&STYLES=&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&EXCEPTIONS=INIMAGE&BBOX=20.742187%2C-19.401855%2C56.513672%2C48.493652&FEATURE_COUNT=10&HEIGHT=814&WIDTH=1545&FORMAT=image%2Fpng&INFO_FORMAT=text%2Fhtml&CRS=EPSG%3A4326&I=1038&J=505" 1618 return (params, "kvp")
1619 1620 #=============================================================================== 1621 # Authorisation Components 1622 #=============================================================================== 1623 1624 httpHeadersAuthnInvalid = { 1625 'AUTH_TYPE': 'shibboleth', 1626 'uid': 'nclue', 1627 'cn': 'Clue Norman', 1628 'description': 'Unauthorized User', 1629 'Shib-AuthnContext-Class': 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', 1630 'Shib-Authentication-Method': 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', 1631 'Shib-Authentication-Instant': '2012-01-01T01:01:01.000Z', 1632 'HTTP_HOST': 'sp.c3ttv042.d03.arc.local', 1633 'Shib-Session-Index': '509d42a63423976dc7b0a91d6ac10ee3d15f21b8133c6b8b82216997875945e4', 1634 'displayName': 'Norman Clue', 1635 'Shib-Application-ID': 'default', 1636 'Shib-Identity-Provider': 'https://idp.c3ttv042.d03.arc.local/idp/shibboleth', 1637 'sn': 'Clue', 1638 'Shib-Session-ID': '_7e0d42381af797d3f69b06d7473455ff', 1639 'givenName': 'Norman', 1640 'DUMMY_MODE': 'DUMMY_MODE' 1641 } 1642 1643 httpHeadersAuthnValid = { 1644 'AUTH_TYPE': 'shibboleth', 1645 'uid': 'jdoe', 1646 'cn': 'Doe John', 1647 'description': 'Authorized User', 1648 'Shib-AuthnContext-Class': 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', 1649 'Shib-Authentication-Method': 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', 1650 'Shib-Authentication-Instant': '2012-01-01T01:01:01.000Z', 1651 'HTTP_HOST': 'sp.c3ttv042.d03.arc.local', 1652 'Shib-Session-Index': '509d42a63423976dc7b0a91d6ac10ee3d15f21b8133c6b8b82216997875945e4', 1653 'Shib-Application-ID': 'default', 1654 'Shib-Identity-Provider': 'https://idp.c3ttv042.d03.arc.local/idp/shibboleth', 1655 'sn': 'Doe', 1656 'Shib-Session-ID': '_7e0d42381af797d3f69b06d7473455ff', 1657 'givenName': 'John', 1658 'DUMMY_MODE': 'DUMMY_MODE' 1659 } 1660
1661 -class SecWCS10GetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1662 - def getRequest(self):
1663 params = "service=WCS&version=1.0.0&request=GetCapabilities" 1664 return (params, "kvp", httpHeadersAuthnValid)
1665
1666 -class SecWCS20GetCapabilitiesValidAuthorizedTestCase(eoxstest.XMLTestCase):
1667 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response"""
1668 - def getRequest(self):
1669 params = "service=WCS&version=2.0.0&request=GetCapabilities" 1670 return (params, "kvp", httpHeadersAuthnValid)
1671
1672 -class SecWCS20PostGetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1673 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response 1674 via POST. 1675 """
1676 - def getRequest(self):
1677 params = """<ns:GetCapabilities updateSequence="u2001" service="WCS" 1678 xmlns:ns="http://www.opengis.net/wcs/2.0" 1679 xmlns:ns1="http://www.opengis.net/ows/2.0"> 1680 <ns1:AcceptVersions><ns1:Version>2.0.0</ns1:Version></ns1:AcceptVersions> 1681 </ns:GetCapabilities> 1682 """ 1683 return (params, "xml", httpHeadersAuthnValid)
1684
1685 -class SecWCS20GetCapabilitiesValidNotAuthorizedTestCase(eoxstest.ExceptionTestCase):
1686 """This test shall retrieve a valid WCS 2.0 EO-AP (EO-WCS) GetCapabilities response without privileges"""
1687 - def getRequest(self):
1688 params = "service=WCS&version=2.0.0&request=GetCapabilities" 1689 return (params, "kvp", httpHeadersAuthnInvalid)
1690
1691 - def getExpectedExceptionCode(self):
1692 return "AccessForbidden"
1693
1694 - def getExpectedHTTPStatus(self):
1695 return 403
1696
1697 -class SecWCS20GetCoverageMosaicTestCase(eoxstest.RectifiedGridCoverageTestCase):
1698 - def getRequest(self):
1699 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=image/tiff" 1700 return (params, "kvp", httpHeadersAuthnValid)
1701
1702 -class SecWCS20GetCoverageCompressionJPEGTestCase(eoxstest.RectifiedGridCoverageTestCase):
1703 - def getRequest(self):
1704 params = "service=wcs&version=2.0.0&request=GetCoverage&CoverageId=mosaic_MER_FRS_1P_RGB_reduced&format=%s" % quote("image/tiff;compress=JPEG;jpeg_quality=50") 1705 return (params, "kvp", httpHeadersAuthnValid)
1706
1707 -class SecWMS13GetCapabilitiesValidTestCase(eoxstest.XMLTestCase):
1708 """This test shall retrieve a valid WMS 1.3 GetCapabilities response"""
1709 - def getRequest(self):
1710 params = "service=WMS&version=1.3.0&request=GetCapabilities" 1711 return (params, "kvp", httpHeadersAuthnValid)
1712
1713 -class SecWMS13GetMapPNGDatasetTestCase(eoxstest.WMS13GetMapTestCase):
1714 """ Test a GetMap request with a dataset series. """ 1715 layers = ("mosaic_MER_FRS_1PNPDE20060822_092058_000001972050_00308_23408_0077_RGB_reduced",) 1716 bbox = (8.5, 32.2, 25.4, 46.3) 1717 frmt = "image/png" 1718 1719 styles = [] 1720 crs = "epsg:4326" 1721 width = 100 1722 height = 100 1723 1724 time = None 1725 dim_band = None 1726 1727 swap_axes = True 1728 1729 httpHeaders = httpHeadersAuthnValid
1730