From 933ff9b6f29ebc72a5382c471205bfc22c21c0fd Mon Sep 17 00:00:00 2001
From: baloola <baloola-mu@hotmail.com>
Date: Wed, 4 Nov 2020 12:52:20 +0100
Subject: [PATCH] adding renderer test

---
 testing/renderer_test.py | 71 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 testing/renderer_test.py

diff --git a/testing/renderer_test.py b/testing/renderer_test.py
new file mode 100644
index 00000000..ec8c9b7e
--- /dev/null
+++ b/testing/renderer_test.py
@@ -0,0 +1,71 @@
+
+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://127.0.0.1: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
+
+
+def test_wcs(identifiers):
+    wcs_items = get_requests('http://127.0.0.1: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
+
-- 
GitLab