EOX GitLab Instance

Skip to content
Snippets Groups Projects
Commit e2b06f27 authored by Mussab Abdalla's avatar Mussab Abdalla
Browse files

adding tests for sftp reports

parent f8ed9ec1
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,9 @@ import csv ...@@ -3,7 +3,9 @@ import csv
import pytest import pytest
import psycopg2 import psycopg2
import paramiko
from dotenv import load_dotenv from dotenv import load_dotenv
from xml.etree import ElementTree
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
...@@ -28,6 +30,14 @@ def identifiers(): ...@@ -28,6 +30,14 @@ def identifiers():
yield csv.reader(f) yield csv.reader(f)
@pytest.fixture
def sftp_connection():
transport = paramiko.Transport(('localhost',2222))
transport.connect(username='eox', password='password')
with paramiko.SFTPClient.from_transport(transport) as sftp:
yield sftp
def query_eo_object(connection, eo_id): def query_eo_object(connection, eo_id):
query = f"SELECT identifier FROM coverages_eoobject WHERE identifier = '{eo_id}';" query = f"SELECT identifier FROM coverages_eoobject WHERE identifier = '{eo_id}';"
with connection.cursor() as cursor: with connection.cursor() as cursor:
...@@ -39,3 +49,34 @@ def test_db_name(connection, identifiers): ...@@ -39,3 +49,34 @@ def test_db_name(connection, identifiers):
for row in identifiers: for row in identifiers:
identifier = row[0].split('/')[4] identifier = row[0].split('/')[4]
query_eo_object(connection, identifier) query_eo_object(connection, identifier)
def compare_links(sftp, product_xml, product):
report= sftp.file("data/to/panda/%s" % product_xml)
xml_file= report.read()
root = ElementTree.fromstring(xml_file.decode('utf-8'))
urls = root.findall('{http://www.telespazio.com/CSCDA/CDD/PDAS}URL')
wms_link = urls[0].find('{http://www.telespazio.com/CSCDA/CDD/PDAS}URL').text
wcs_link = urls[1].find('{http://www.telespazio.com/CSCDA/CDD/PDAS}URL').text
wms_capabilities = 'emg.pass.copernicus.eu/ows?service=wms&request=GetCapabilities&amp&cql=identifier='
wcs_capabilities = 'emg.pass.copernicus.eu/ows?service=wcs&request=GetCapabilities&amp&cql=identifier='
expected_wms_link = '%s"%s"' % (wms_capabilities, product)
expected_wcs_link = '%s"%s"' % (wcs_capabilities, product)
assert expected_wms_link.replace('&amp&', '&') == wms_link
assert expected_wcs_link.replace('&amp&', '&') == wcs_link
def test_reporting(sftp_connection, identifiers):
report_list = sftp_connection.listdir('data/to/panda/')
assert len(report_list) > 0
for item in report_list:
for row in identifiers:
identifier = row[0].split('/')[4]
if identifier in item:
compare_links(sftp_connection, item, identifier)
\ No newline at end of file
...@@ -11,25 +11,6 @@ while read product; do ...@@ -11,25 +11,6 @@ while read product; do
--reporting-dir "/mnt/reports" \ --reporting-dir "/mnt/reports" \
<<<$product <<<$product
IFS='/' read -ra ADDR <<< "$product"
docker exec $(docker ps -qf "name=emg-pvs_registrar") bash -c 'ls /mnt/reports/. | grep $ADDR[4]' >> ${ADDR[4]}.csv
while IFS="" read -r name
do
docker exec $(docker ps -qf "name=emg-pvs_registrar") cat /mnt/reports/$name > temp.xml
tail -n +2 temp.xml > ${ADDR[4]}.xml
done < ${ADDR[4]}.csv
rm ${ADDR[4]}.csv temp.xml
done < "$product_list_file" done < "$product_list_file"
pytest #-s registrar_test.py --name $product_list_file pytest #-s registrar_test.py --name $product_list_file
# Remove the created xml reports
while read product; do
IFS='/' read -ra ADDR <<< "$product"
rm ${ADDR[4]}.xml
done < $product_list_file
pytest pytest
psycopg2 psycopg2
python-dotenv python-dotenv
paramiko
# python-swiftclient # python-swiftclient
# python-keystoneclient # python-keystoneclient
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment