From b9af22b92f09d1a005634373ea37a2f3e777bf01 Mon Sep 17 00:00:00 2001 From: Erno Kuvaja Date: Fri, 9 Mar 2018 13:06:16 +0000 Subject: [PATCH] Clean the web-download tests Web-download tests introduced in e54622ca7262a2967612b0a265360a4c036fc0aa did have some ignored settings that did not get tested. Cleaned them out of the tests that did not verify them and added test doing so. Also flattening the path by one layer. Co-authored-by: Brian Rosmaita Co-authored-by: Erno Kuvaja Change-Id: I01a73d41ae293e8204b0ea87e42922ba6a1bf9d2 --- .../async/flows/_internal_plugins/__init__.py | 0 .../test_web_download.py | 3 +- glance/tests/unit/common/test_utils.py | 43 +++++++++++++++---- 3 files changed, 37 insertions(+), 9 deletions(-) delete mode 100644 glance/tests/unit/async/flows/_internal_plugins/__init__.py rename glance/tests/unit/async/flows/{_internal_plugins => }/test_web_download.py (97%) diff --git a/glance/tests/unit/async/flows/_internal_plugins/__init__.py b/glance/tests/unit/async/flows/_internal_plugins/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/glance/tests/unit/async/flows/_internal_plugins/test_web_download.py b/glance/tests/unit/async/flows/test_web_download.py similarity index 97% rename from glance/tests/unit/async/flows/_internal_plugins/test_web_download.py rename to glance/tests/unit/async/flows/test_web_download.py index 5c0963f7fe..ca62f0a612 100644 --- a/glance/tests/unit/async/flows/_internal_plugins/test_web_download.py +++ b/glance/tests/unit/async/flows/test_web_download.py @@ -19,7 +19,8 @@ from glance_store._drivers import filesystem from glance_store import backend from oslo_config import cfg -import glance.async.flows._internal_plugins.web_download as web_download +from glance.async.flows._internal_plugins import web_download + import glance.common.exception import glance.common.scripts.utils as script_utils from glance import domain diff --git a/glance/tests/unit/common/test_utils.py b/glance/tests/unit/common/test_utils.py index afca1388e6..48911c6730 100644 --- a/glance/tests/unit/common/test_utils.py +++ b/glance/tests/unit/common/test_utils.py @@ -14,9 +14,11 @@ # License for the specific language governing permissions and limitations # under the License. +import mock import os import tempfile +from oslo_log import log as logging import six import webob @@ -502,22 +504,15 @@ class ImportURITestCase(test_utils.BaseTestCase): def test_validate_import_uri(self): self.assertTrue(utils.validate_import_uri("http://foo.com")) + self.config(allowed_schemes=['http'], group='import_filtering_opts') - self.config(disallowed_schemes=['ftp'], - group='import_filtering_opts') - self.config(allowed_hosts=['example.com'], group='import_filtering_opts') - self.config(disallowed_hosts=['foo.com'], - group='import_filtering_opts') - self.assertTrue(utils.validate_import_uri("http://example.com")) self.config(allowed_ports=['8080'], group='import_filtering_opts') - self.config(disallowed_ports=['8484'], - group='import_filtering_opts') self.assertTrue(utils.validate_import_uri("http://example.com:8080")) def test_invalid_import_uri(self): @@ -535,3 +530,35 @@ class ImportURITestCase(test_utils.BaseTestCase): self.config(disallowed_ports=['8484'], group='import_filtering_opts') self.assertFalse(utils.validate_import_uri("http://localhost:8484")) + + def test_ignored_filtering_options(self): + LOG = logging.getLogger('glance.common.utils') + with mock.patch.object(LOG, 'debug') as mock_run: + self.config(allowed_schemes=['https', 'ftp'], + group='import_filtering_opts') + self.config(disallowed_schemes=['ftp'], + group='import_filtering_opts') + self.assertTrue(utils.validate_import_uri("ftp://foo.com")) + mock_run.assert_called_once() + with mock.patch.object(LOG, 'debug') as mock_run: + self.config(allowed_schemes=[], + group='import_filtering_opts') + self.config(disallowed_schemes=[], + group='import_filtering_opts') + self.config(allowed_hosts=['example.com', 'foo.com'], + group='import_filtering_opts') + self.config(disallowed_hosts=['foo.com'], + group='import_filtering_opts') + self.assertTrue(utils.validate_import_uri("ftp://foo.com")) + mock_run.assert_called_once() + with mock.patch.object(LOG, 'debug') as mock_run: + self.config(allowed_hosts=[], + group='import_filtering_opts') + self.config(disallowed_hosts=[], + group='import_filtering_opts') + self.config(allowed_ports=[8080, 8484], + group='import_filtering_opts') + self.config(disallowed_ports=[8484], + group='import_filtering_opts') + self.assertTrue(utils.validate_import_uri("ftp://foo.com:8484")) + mock_run.assert_called_once()