diff options
-rw-r--r-- | examples/__init__.py | 15 | ||||
-rw-r--r-- | examples/heat/__init__.py | 15 | ||||
-rw-r--r-- | snaps/custom_image_test_runner.py | 4 | ||||
-rw-r--r-- | snaps/openstack/tests/conf/__init__.py | 15 | ||||
-rw-r--r-- | snaps/openstack/tests/create_stack_tests.py | 19 | ||||
-rw-r--r-- | snaps/openstack/tests/os_source_file_test.py | 4 | ||||
-rw-r--r-- | snaps/openstack/utils/tests/heat_utils_tests.py | 5 | ||||
-rw-r--r-- | snaps/provisioning/tests/ansible_utils_tests.py | 9 | ||||
-rw-r--r-- | snaps/provisioning/tests/playbooks/__init__.py | 15 | ||||
-rw-r--r-- | snaps/test_runner.py | 4 | ||||
-rw-r--r-- | snaps/tests/file_utils_tests.py | 4 |
11 files changed, 88 insertions, 21 deletions
diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 0000000..271c742 --- /dev/null +++ b/examples/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs") +# and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file 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. +__author__ = 'spisarski' diff --git a/examples/heat/__init__.py b/examples/heat/__init__.py new file mode 100644 index 0000000..271c742 --- /dev/null +++ b/examples/heat/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs") +# and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file 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. +__author__ = 'spisarski' diff --git a/snaps/custom_image_test_runner.py b/snaps/custom_image_test_runner.py index a3e3897..4b86bf6 100644 --- a/snaps/custom_image_test_runner.py +++ b/snaps/custom_image_test_runner.py @@ -14,7 +14,6 @@ # limitations under the License. import argparse import logging -import os import unittest from snaps import test_suite_builder @@ -48,9 +47,6 @@ def __run_tests(source_filename, ext_net_name, proxy_settings, ssh_proxy_cmd, us """ os_creds = openstack_tests.get_credentials(os_env_file=source_filename, proxy_settings_str=proxy_settings, ssh_proxy_cmd=ssh_proxy_cmd) - # To ensure any files referenced via a relative path will begin from the diectory in which this file resides - os.chdir(os.path.dirname(os.path.realpath(__file__))) - image_creators = __create_images(os_creds) meta_list = list() diff --git a/snaps/openstack/tests/conf/__init__.py b/snaps/openstack/tests/conf/__init__.py new file mode 100644 index 0000000..271c742 --- /dev/null +++ b/snaps/openstack/tests/conf/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs") +# and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file 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. +__author__ = 'spisarski' diff --git a/snaps/openstack/tests/create_stack_tests.py b/snaps/openstack/tests/create_stack_tests.py index fa75475..bee1340 100644 --- a/snaps/openstack/tests/create_stack_tests.py +++ b/snaps/openstack/tests/create_stack_tests.py @@ -12,6 +12,7 @@ # 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. +import pkg_resources import time from heatclient.exc import HTTPBadRequest @@ -145,12 +146,17 @@ class CreateStackSuccessTests(OSIntegrationTestCase): self.env_values = {'image_name': self.image_creator.image_settings.name, 'flavor_name': self.flavor_creator.flavor_settings.name} + self.heat_tmplt_path = pkg_resources.resource_filename('examples.heat', 'test_heat_template.yaml') + def tearDown(self): """ Cleans the stack and downloaded stack file """ if self.stack_creator: - self.stack_creator.clean() + try: + self.stack_creator.clean() + except: + pass if self.image_creator: try: @@ -173,7 +179,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): # Create Stack # Set the default stack settings, then set any custom parameters sent from the app stack_settings = StackSettings(name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', - template_path='../examples/heat/test_heat_template.yaml', + template_path=self.heat_tmplt_path, env_values=self.env_values) self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, stack_settings) created_stack = self.stack_creator.create() @@ -193,7 +199,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): # Create Stack # Set the default stack settings, then set any custom parameters sent from the app template_dict = heat_utils.parse_heat_template_str( - file_utils.read_file('../examples/heat/test_heat_template.yaml')) + file_utils.read_file(self.heat_tmplt_path)) stack_settings = StackSettings(name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) @@ -214,7 +220,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): """ # Create Stack template_dict = heat_utils.parse_heat_template_str( - file_utils.read_file('../examples/heat/test_heat_template.yaml')) + file_utils.read_file(self.heat_tmplt_path)) stack_settings = StackSettings(name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) @@ -253,7 +259,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): """ # Create Stack template_dict = heat_utils.parse_heat_template_str( - file_utils.read_file('../examples/heat/test_heat_template.yaml')) + file_utils.read_file(self.heat_tmplt_path)) stack_settings = StackSettings(name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) @@ -283,6 +289,7 @@ class CreateStackNegativeTests(OSIntegrationTestCase): self.stack_name = self.__class__.__name__ + '-' + str(uuid.uuid4()) self.stack_creator = None + self.heat_tmplt_path = pkg_resources.resource_filename('examples.heat', 'test_heat_template.yaml') def tearDown(self): if self.stack_creator: @@ -293,7 +300,7 @@ class CreateStackNegativeTests(OSIntegrationTestCase): """ Expect an StackCreationError when the stack file does not exist """ - stack_settings = StackSettings(name=self.stack_name, template_path='../examples/heat/test_heat_template.yaml') + stack_settings = StackSettings(name=self.stack_name, template_path=self.heat_tmplt_path) self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, stack_settings) with self.assertRaises(HTTPBadRequest): self.stack_creator.create() diff --git a/snaps/openstack/tests/os_source_file_test.py b/snaps/openstack/tests/os_source_file_test.py index 3a632e5..4b421e8 100644 --- a/snaps/openstack/tests/os_source_file_test.py +++ b/snaps/openstack/tests/os_source_file_test.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import logging +import pkg_resources import uuid import unittest @@ -22,7 +23,8 @@ from snaps.openstack.create_user import UserSettings from snaps.openstack.tests import openstack_tests from snaps.openstack.utils import deploy_utils, keystone_utils -dev_os_env_file = 'openstack/tests/conf/os_env.yaml' + +dev_os_env_file = pkg_resources.resource_filename('snaps.openstack.tests.conf', 'os_env.yaml') # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # To run these tests from an IDE, the CWD must be set to the snaps directory of this project diff --git a/snaps/openstack/utils/tests/heat_utils_tests.py b/snaps/openstack/utils/tests/heat_utils_tests.py index 08387d8..3d9fe84 100644 --- a/snaps/openstack/utils/tests/heat_utils_tests.py +++ b/snaps/openstack/utils/tests/heat_utils_tests.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import logging +import pkg_resources import uuid import time @@ -86,8 +87,8 @@ class HeatUtilsCreateStackTests(OSComponentTestCase): env_values = {'image_name': self.image_creator.image_settings.name, 'flavor_name': self.flavor_creator.flavor_settings.name} - self.stack_settings = StackSettings(name=stack_name, template_path='../examples/heat/test_heat_template.yaml', - env_values=env_values) + heat_tmplt_path = pkg_resources.resource_filename('examples.heat', 'test_heat_template.yaml') + self.stack_settings = StackSettings(name=stack_name, template_path=heat_tmplt_path, env_values=env_values) self.stack = None self.heat_client = heat_utils.heat_client(self.os_creds) diff --git a/snaps/provisioning/tests/ansible_utils_tests.py b/snaps/provisioning/tests/ansible_utils_tests.py index 76714b8..cddedcd 100644 --- a/snaps/provisioning/tests/ansible_utils_tests.py +++ b/snaps/provisioning/tests/ansible_utils_tests.py @@ -14,6 +14,7 @@ # limitations under the License. import os +import pkg_resources import uuid from scp import SCPClient from snaps.openstack.create_security_group import SecurityGroupRuleSettings, Direction, Protocol, \ @@ -191,7 +192,8 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): user = self.inst_creator.get_image_user() priv_key = self.inst_creator.keypair_settings.private_filepath - retval = self.inst_creator.apply_ansible_playbook('provisioning/tests/playbooks/simple_playbook.yml') + relative_pb_path = pkg_resources.resource_filename('snaps.provisioning.tests.playbooks', 'simple_playbook.yml') + retval = self.inst_creator.apply_ansible_playbook(relative_pb_path) self.assertEqual(0, retval) ssh = ansible_utils.ssh_client(ip, user, priv_key, self.os_creds.proxy_settings) @@ -228,8 +230,9 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): user = self.inst_creator.get_image_user() priv_key = self.inst_creator.keypair_settings.private_filepath - retval = self.inst_creator.apply_ansible_playbook('provisioning/tests/playbooks/template_playbook.yml', - variables={'name': 'Foo'}) + relative_pb_path = pkg_resources.resource_filename('snaps.provisioning.tests.playbooks', + 'template_playbook.yml') + retval = self.inst_creator.apply_ansible_playbook(relative_pb_path, variables={'name': 'Foo'}) self.assertEqual(0, retval) ssh = ansible_utils.ssh_client(ip, user, priv_key, self.os_creds.proxy_settings) diff --git a/snaps/provisioning/tests/playbooks/__init__.py b/snaps/provisioning/tests/playbooks/__init__.py new file mode 100644 index 0000000..271c742 --- /dev/null +++ b/snaps/provisioning/tests/playbooks/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs") +# and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file 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. +__author__ = 'spisarski' diff --git a/snaps/test_runner.py b/snaps/test_runner.py index 54caccb..d207bf3 100644 --- a/snaps/test_runner.py +++ b/snaps/test_runner.py @@ -15,7 +15,6 @@ import argparse import json import logging -import os import unittest from snaps import test_suite_builder, file_utils @@ -124,9 +123,6 @@ def main(arguments): logger.error('Environment file or external network not defined') exit(1) - # To ensure any files referenced via a relative path will begin from the diectory in which this file resides - os.chdir(os.path.dirname(os.path.realpath(__file__))) - i = 0 while i < int(arguments.num_runs): result = unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/snaps/tests/file_utils_tests.py b/snaps/tests/file_utils_tests.py index a28231b..62d96e8 100644 --- a/snaps/tests/file_utils_tests.py +++ b/snaps/tests/file_utils_tests.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import os +import pkg_resources import unittest import shutil import uuid @@ -95,7 +96,8 @@ class FileUtilsTests(unittest.TestCase): Tests that the OS Environment file is correctly parsed :return: """ - os_env_dict = file_utils.read_os_env_file('openstack/tests/conf/overcloudrc_test') + rc_file_path = pkg_resources.resource_filename('snaps.openstack.tests.conf', 'overcloudrc_test') + os_env_dict = file_utils.read_os_env_file(rc_file_path) self.assertEqual('test_pw', os_env_dict['OS_PASSWORD']) self.assertEqual('http://foo:5000/v2.0/', os_env_dict['OS_AUTH_URL']) self.assertEqual('admin', os_env_dict['OS_USERNAME']) |