diff options
Diffstat (limited to 'ice_validator/app_tests')
-rw-r--r-- | ice_validator/app_tests/__init__.py | 39 | ||||
-rw-r--r-- | ice_validator/app_tests/test_app.py | 52 | ||||
-rw-r--r-- | ice_validator/app_tests/test_app_config.py | 143 | ||||
-rw-r--r-- | ice_validator/app_tests/vvp-config.yaml | 51 |
4 files changed, 285 insertions, 0 deletions
diff --git a/ice_validator/app_tests/__init__.py b/ice_validator/app_tests/__init__.py new file mode 100644 index 0000000..4a18fb6 --- /dev/null +++ b/ice_validator/app_tests/__init__.py @@ -0,0 +1,39 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# diff --git a/ice_validator/app_tests/test_app.py b/ice_validator/app_tests/test_app.py new file mode 100644 index 0000000..89798a5 --- /dev/null +++ b/ice_validator/app_tests/test_app.py @@ -0,0 +1,52 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +from threading import Thread + +from vvp import ValidatorApp, VERSION + + +def test_app_starts(): + app = ValidatorApp() + assert "VNF Validation Tool" in app.title + assert VERSION in app.title + app_thread = Thread(target=app.start, args=()) + app_thread.daemon = True + app.config.command_queue.put("SHUTDOWN") diff --git a/ice_validator/app_tests/test_app_config.py b/ice_validator/app_tests/test_app_config.py new file mode 100644 index 0000000..d9a8567 --- /dev/null +++ b/ice_validator/app_tests/test_app_config.py @@ -0,0 +1,143 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +from io import StringIO + +import pytest +import yaml + +import vvp + +DEFAULT_CONFIG = """ +ui: + app-name: VNF Validation Tool +categories: + - name: Environment File Compliance. (Required to Onboard) + category: environment_file + description: + Checks certain parameters are excluded from the .env file, per HOT Requirements. + Required for ASDC onboarding, not needed for manual Openstack testing. +settings: + polling-freqency: 1000 + default-verbosity: Standard +""" + + +# noinspection PyShadowingNames +@pytest.fixture(scope="module") +def config(): + return vvp.Config(yaml.load(StringIO(DEFAULT_CONFIG))) + + +def test_app_name(config): + assert "VNF Validation Tool" in config.app_name + assert vvp.VERSION in config.app_name + + +def test_categories_names_length(config): + names = config.category_names + assert len(names) == 1 + assert names[0] == "Environment File Compliance. (Required to Onboard)" + + +def test_polling_frequency(config): + assert config.polling_frequency == 1000 + + +def test_get_category_when_other(config): + assert ( + config.get_category("Environment File Compliance. (Required to Onboard)") + == "environment_file" + ) + + +def test_default_verbosity(config): + assert config.default_verbosity(vvp.ValidatorApp.VERBOSITY_LEVELS) == "More (-vv)" + + +def test_queues(config): + assert config.log_queue.empty(), "Log should start empty" + config.log_file.write("Test") + assert config.log_queue.get() == "Test" + + assert config.status_queue.empty(), "status should start empty" + config.status_queue.put((True, None)) + assert config.status_queue.get() == (True, None) + + +MISSING_CATEGORY_FIELD = """ +ui: + app-name: VNF Validation Tool +categories: + - description: | + Runs all default validations that apply to all VNF packages + regardless of deployment environment +settings: + polling-freqency: 1000 +""" + + +def test_missing_category_fields(): + settings = yaml.load(StringIO(MISSING_CATEGORY_FIELD)) + with pytest.raises(RuntimeError) as e: + vvp.Config(settings) + assert "Missing: name" in str(e) + + +def test_default_output_format(config): + assert config.default_report_format == "HTML" + + +def test_output_formats(config): + for format in ["CSV", "HTML", "Excel"]: + assert format in config.report_formats + + +def test_category_names(config): + assert "Environment File Compliance. (Required to Onboard)" in config.category_names + + +def test_default_input_format(config): + assert "Directory (Uncompressed)" == config.default_input_format + + +def test_input_formats(config): + assert "Directory (Uncompressed)" in config.input_formats + assert "ZIP File" in config.input_formats diff --git a/ice_validator/app_tests/vvp-config.yaml b/ice_validator/app_tests/vvp-config.yaml new file mode 100644 index 0000000..147eae0 --- /dev/null +++ b/ice_validator/app_tests/vvp-config.yaml @@ -0,0 +1,51 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +ui: + app-name: VNF Validation Tool +categories: + - name: Environment File Compliance. (Required to Onboard) + category: environment_file + description: + Checks certain parameters are excluded from the .env file, per HOT Requirements. + Required for ASDC onboarding, not needed for manual Openstack testing. +settings: + polling-freqency: 1000 + default-verbosity: Standard |