From d0ab6565ef0e296c7627484c1adc6dbd7ebdbb48 Mon Sep 17 00:00:00 2001 From: maleksandrov Date: Fri, 23 Apr 2021 14:28:34 +0200 Subject: [PATCH 1/3] fix for installing new cartopy in CI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 155829a8d..7e0d7b329 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ before_install: install: - pip install -r requirements-dev.txt --upgrade +- FORCE_CYTHON=1 pip install cartopy # temporal fix for cartopy==0.19.0 - if [ $TRAVIS_PYTHON_VERSION == '3.6' ]; then python install_all.py -e; else From 0d98464b9054eaef616edb9fe1f1fa82ff8026d8 Mon Sep 17 00:00:00 2001 From: maleksandrov Date: Fri, 23 Apr 2021 14:42:19 +0200 Subject: [PATCH 2/3] moved _create_s3_bucket back from conftest as imports don't work if eo-learn is not installed in editable mode --- io/eolearn/tests/conftest.py | 16 ---------------- io/eolearn/tests/test_local_io.py | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/io/eolearn/tests/conftest.py b/io/eolearn/tests/conftest.py index 06eb9034e..df8964efc 100644 --- a/io/eolearn/tests/conftest.py +++ b/io/eolearn/tests/conftest.py @@ -5,9 +5,7 @@ import boto3 import botocore.exceptions - import pytest -from moto import mock_s3 from sentinelhub import SHConfig @@ -66,17 +64,3 @@ def geodb_client_fixture(): client_id=client_id, client_secret=client_secret ) - - -@mock_s3 -def _create_s3_bucket(bucket_name): - s3resource = boto3.resource('s3', region_name='eu-central-1') - bucket = s3resource.Bucket(bucket_name) - - if bucket.creation_date: # If bucket already exists - for key in bucket.objects.all(): - key.delete() - bucket.delete() - - s3resource.create_bucket(Bucket=bucket_name, - CreateBucketConfiguration={'LocationConstraint': 'eu-central-1'}) diff --git a/io/eolearn/tests/test_local_io.py b/io/eolearn/tests/test_local_io.py index 9314a94d9..14243b9b9 100644 --- a/io/eolearn/tests/test_local_io.py +++ b/io/eolearn/tests/test_local_io.py @@ -17,19 +17,33 @@ import unittest from unittest.mock import patch +import boto3 import numpy as np from fs.errors import ResourceNotFound from moto import mock_s3 from eolearn.core import EOPatch, FeatureType from eolearn.io import ExportToTiff, ImportFromTiff -from eolearn.tests.conftest import _create_s3_bucket from sentinelhub import read_data from sentinelhub.time_utils import serialize_time logging.basicConfig(level=logging.DEBUG) +@mock_s3 +def _create_s3_bucket(bucket_name): + s3resource = boto3.resource('s3', region_name='eu-central-1') + bucket = s3resource.Bucket(bucket_name) + + if bucket.creation_date: # If bucket already exists + for key in bucket.objects.all(): + key.delete() + bucket.delete() + + s3resource.create_bucket(Bucket=bucket_name, + CreateBucketConfiguration={'LocationConstraint': 'eu-central-1'}) + + class TestExportAndImportTiff(unittest.TestCase): """ Testing if export and then import of the data preserves the data """ From fd2c56741ac2c6943aa63c2a8715fad75da0bded Mon Sep 17 00:00:00 2001 From: maleksandrov Date: Fri, 23 Apr 2021 14:57:10 +0200 Subject: [PATCH 3/3] skiping s3 tests in case credentials are missing, removed debug logging --- io/eolearn/tests/conftest.py | 7 ++++--- io/eolearn/tests/test_geometry_io.py | 4 ---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/io/eolearn/tests/conftest.py b/io/eolearn/tests/conftest.py index df8964efc..a165e6033 100644 --- a/io/eolearn/tests/conftest.py +++ b/io/eolearn/tests/conftest.py @@ -4,7 +4,7 @@ import os import boto3 -import botocore.exceptions +from botocore.exceptions import ClientError, NoCredentialsError import pytest from sentinelhub import SHConfig @@ -43,10 +43,11 @@ def s3_gpkg_example_file_fixture(config): try: client.head_bucket(Bucket='eolearn-io') - return 's3://eolearn-io/import-gpkg-test.gpkg' - except botocore.exceptions.ClientError: + except (ClientError, NoCredentialsError): return pytest.skip(msg='No access to the bucket.') + return 's3://eolearn-io/import-gpkg-test.gpkg' + @pytest.fixture(name='geodb_client') def geodb_client_fixture(): diff --git a/io/eolearn/tests/test_geometry_io.py b/io/eolearn/tests/test_geometry_io.py index ca07715ed..54b4a9179 100644 --- a/io/eolearn/tests/test_geometry_io.py +++ b/io/eolearn/tests/test_geometry_io.py @@ -5,16 +5,12 @@ This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. """ -import logging - import pytest from eolearn.core import FeatureType from eolearn.io import GeoDBVectorImportTask, GeopediaVectorImportTask, VectorImportTask from sentinelhub import BBox, CRS -logging.basicConfig(level=logging.DEBUG) - @pytest.mark.parametrize( argnames='reproject, clip, n_features, bbox, crs',