Newer
Older
import requests
import pytest
import csv
import subprocess
import json
from xml.etree import ElementTree
from osgeo import gdal
from urllib.parse import unquote
@pytest.fixture
def identifiers():
with open('./product_list.csv') as f:
yield csv.reader(f)
def get_requests (url, service_list, service, request):
response = requests.get(url = url)
catalog = ElementTree.fromstring(response.content)
entries = catalog.findall('{http://www.w3.org/2005/Atom}entry')
for entry in entries :
offers = entry.findall('{http://www.opengis.net/owc/1.0}offering[@code="http://www.opengis.net/spec/owc-atom/1.0/req/%s"]' % service)
for offer in offers :
services = offer.findall('{http://www.opengis.net/owc/1.0}operation[@code="%s"]' % request)
if len(services) > 0 :
service_list.append(services[0].get('href'))
return service_list
def test_renderer(identifiers):
wms_items = get_requests('http://docker:81/opensearch/collections/Emergency/atom/', [], 'wms', 'GetMap')
for row in identifiers:
identifier = row[0].split('/')[4]
for item in wms_items:
if identifier in unquote(unquote(item)) :
wms_response = requests.get(url = item)
# wms succsess
assert wms_response.status_code == 200
# check if there are registerd products
assert len(wms_items) > 0
wcs_items = get_requests('http://docker:81/opensearch/collections/Emergency/atom/', [], 'wcs', 'GetCoverage')
for row in identifiers:
identifier = row[0].split('/')[4]
for item in wcs_items:
if identifier in unquote(unquote(item)) :
wcs_response = requests.get(url = item + '&scalesize=x(50),y(50)')
data = wcs_response.content
with open('temp.tif', 'wb') as f:
f.write(data)
image = gdal.Open('temp.tif', gdal.GA_ReadOnly)
srcband = image.GetRasterBand(1)
# wcs succsess
assert wcs_response.status_code == 200
assert srcband.Checksum() != None
assert srcband.Checksum() > 0
# check if there are registerd products
assert len(wcs_items) > 0