diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fe1c4269cf4ec2860f9126f541afee1d17644c64..020acd92f92e80b9af94d60f57364c9b20fbdbae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,15 +88,17 @@ test: - chmod +x env_setup.sh wait_for_container.sh - ./env_setup.sh - docker swarm init - - docker stack deploy -c docker-compose.vhr18.yml -c docker-compose.vhr18.dev.yml vhr18-pvs - - ./wait_for_container.sh + - docker stack deploy -c docker-compose.emg.yml -c docker-compose.emg.dev.yml emg-pvs + # - ./wait_for_container.sh - docker ps - - docker ps -qf "name=vhr18-pvs_renderer" - # - docker exec -it $(docker ps -qf "name=vhr18-pvs_renderer") python3 /var/www/pvs/dev/pvs_instance/manage.py id list + # - docker ps -qf "name=emg-pvs_registrar" + # - docker exec -it $(docker ps -qf "name=emg-pvs_registrar") python3 /var/www/pvs/dev/pvs_instance/manage.py id list + # - docker exec -it $(docker ps -qf "name=emg-pvs_registrar") python3 /core/registrar.py --objects-prefix "OA/PH1B/0.1/b9/urn:eop:PHR:MULTISPECTRAL_0.5m:DS_PHR1B_201608070959189_FR1_PX_E012N32_0719_00974_4148/0000/PH1B_PHR_FUS_1A_20160807T095918_20160807T095920_TOU_1234_4148.DIMA.tar" + # - pytest -s registrar_test.py --name OA/PH1B/0.1/b9/urn:eop:PHR:MULTISPECTRAL_0.5m:DS_PHR1B_201608070959189_FR1_PX_E012N32_0719_00974_4148/0000/PH1B_PHR_FUS_1A_20160807T095918_20160807T095920_TOU_1234_4148.DIMA.tar + # after_script: - # - docker stack rm vhr18-pvs - # - docker volume rm vhr18-pvs_db-data - # - docker volume rm vhr18-pvs_redis-data - # - docker volume rm vhr18-pvs_traefik-data - # - docker volume rm vhr18-pvs_cache-db + # - docker volume rm emg-pvs_db-data + # - docker volume rm emg-pvs_redis-data + # - docker volume rm emg-pvs_instance-data + # - docker volume rm emg-pvs_cache-db \ No newline at end of file diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000000000000000000000000000000000000..7a1d3249386440525e74a35d4574a36f9781c633 --- /dev/null +++ b/conftest.py @@ -0,0 +1,10 @@ +def pytest_addoption(parser): + parser.addoption("--name", action="store", default="default name") + + +def pytest_generate_tests(metafunc): + # This is called for every test. Only get/set command line arguments + # if the argument is specified in the list of test "fixturenames". + option_value = metafunc.config.option.name + if 'name' in metafunc.fixturenames and option_value is not None: + metafunc.parametrize("name", [option_value]) \ No newline at end of file diff --git a/core/registrar.py b/core/registrar.py index 776e0311d745bdfb0d79d5c95625e147d60ee89a..67139abea50ac01afc030802a7e1a774687378d2 100644 --- a/core/registrar.py +++ b/core/registrar.py @@ -143,6 +143,7 @@ def registrar( container=upload_container, options={"prefix": objects_prefix}, ) for page in list_parts_gen: + print(page) if page["success"]: for item in page["listing"]: if item["name"].endswith(".xml"): @@ -154,7 +155,7 @@ def registrar( elif item["name"].endswith(".vrt"): data_package = item["name"] has_vrt = True - else: + elif not item["name"].endswith(".tar"): raise RegistrationError( "Product with objects prefix '%s' has " "wrong content '%s'." @@ -312,7 +313,7 @@ if __name__ == "__main__": setup_logging(arg_values.verbosity) - collection = os.environ.get('Collection') + collection = os.environ.get('COLLECTION') if collection is None: logger.critical("Collection environment variable not set.") sys.exit(1) diff --git a/registrar_test.py b/registrar_test.py new file mode 100644 index 0000000000000000000000000000000000000000..ffaeaec47973fcc05c095e05cca72081780efed8 --- /dev/null +++ b/registrar_test.py @@ -0,0 +1,38 @@ +import psycopg2 +import os + +database_user = os.environ['DB_USER'] +database_password = os.environ['DB_PW'] +host = os.environ['DB_HOST'] +port = os.environ['DB_PORT'] +database = os.environ['DB_NAME'] + +def connect_to_db(eo_id): + global db_name, coverage_id + try: + # connection = psycopg2.connect( "dbname=emg_db user=emg_user password=QkU)n=Wwr70w^o=4XS~*5)vfL[ij~C} host=127.0.0.1 port=84") + connection = psycopg2.connect(dbname=database, user=database_user, password=database_password, host=host, port=port) + + cursor = connection.cursor() + db_name = connection.get_dsn_parameters()["dbname"] + postgreSQL_select_Query = "SELECT identifier FROM coverages_eoobject WHERE identifier = '%s';" % eo_id + cursor.execute(postgreSQL_select_Query) + coverage_id = cursor.fetchone()[0] + + except (Exception, psycopg2.Error) as error : + print ("Error while connecting to PostgreSQL", error) + finally: + #closing database connection. + if(connection): + cursor.close() + connection.close() + print("PostgreSQL connection is closed") + + + +def test_db_name(name): + identifier = name.split('/')[4] + connect_to_db(identifier) + assert coverage_id == identifier + assert db_name == database + diff --git a/requirements.txt b/requirements.txt index 55b033e901cdda93a26ac64b418f260224260a39..d450e40105e3f9c3b80478763e8efa6a91f3279c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -pytest \ No newline at end of file +pytest +psycopg2 \ No newline at end of file