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
import pytest
import psycopg2
import paramiko
from dotenv import load_dotenv
from xml.etree import ElementTree
@pytest.fixture(scope="session")
......@@ -28,6 +30,14 @@ def identifiers():
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):
query = f"SELECT identifier FROM coverages_eoobject WHERE identifier = '{eo_id}';"
with connection.cursor() as cursor:
......@@ -39,3 +49,34 @@ def test_db_name(connection, identifiers):
for row in identifiers:
identifier = row[0].split('/')[4]
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
--reporting-dir "/mnt/reports" \
<<<$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"
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
psycopg2
python-dotenv
paramiko
# python-swiftclient
# 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