Run 3rd-party test suites without excess dependences
- each test method is parametrized with ENV_NAME to
get unique names in JUnit reports for different
configurations
Change-Id: I8db671d1687f287dc8ca97782cd7bbdf0eaef988
diff --git a/tcp_tests/tests/system/test_3rdparty_suites.py b/tcp_tests/tests/system/test_3rdparty_suites.py
new file mode 100644
index 0000000..d545532
--- /dev/null
+++ b/tcp_tests/tests/system/test_3rdparty_suites.py
@@ -0,0 +1,93 @@
+# Copyright 2016 Mirantis, Inc.
+#
+# 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.
+
+import pytest
+
+from tcp_tests import logger
+from tcp_tests import settings
+
+LOG = logger.logger
+
+
+class Test3rdpartySuites(object):
+ """Test class for running 3rdparty test suites
+
+ Requires environment variables:
+ ENV_NAME
+ LAB_CONFIG_NAME
+ TESTS_CONFIGS
+ """
+
+ @pytest.mark.grab_versions
+ @pytest.mark.parametrize("_", [settings.ENV_NAME])
+ @pytest.mark.run_tempest
+ def test_run_tempest(self, tempest_actions, show_step, _):
+ """Runner for Juniper contrail-tests
+
+ Scenario:
+ 1. Run tempest
+ """
+ show_step(1)
+ tempest_actions.prepare_and_run_tempest()
+
+ @pytest.mark.grab_versions
+ @pytest.mark.parametrize("_", [settings.ENV_NAME])
+ @pytest.mark.run_stacklight
+ def test_run_stacklight(self, sl_actions, show_step, _):
+ """Runner for Stacklight tests
+
+ Scenario:
+ 1. Run SL test
+ """
+
+ # Run SL component tetsts
+ show_step(1)
+ sl_actions.setup_sl_functional_tests(
+ 'cfg01',
+ )
+ sl_actions.run_sl_functional_tests(
+ 'cfg01',
+ '/root/stacklight-pytest/stacklight_tests/',
+ 'tests/prometheus',
+ 'test_alerts.py',
+ junit_report_name='stacklight_report.xml')
+ # Download report
+ sl_actions.download_sl_test_report(
+ 'cfg01',
+ '/root/stacklight-pytest/stacklight_tests/'
+ 'stacklight_report.xml')
+
+ @pytest.mark.grab_versions
+ @pytest.mark.extract(container_system='docker', extract_from='conformance',
+ files_to_extract=['report'])
+ @pytest.mark.merge_xunit(path='/root/report',
+ output='/root/conformance_result.xml')
+ @pytest.mark.grab_k8s_results(name=['k8s_conformance.log',
+ 'conformance_result.xml'])
+ @pytest.mark.parametrize("_", [settings.ENV_NAME])
+ @pytest.mark.k8s_conformance
+ def test_run_k8s_conformance(self, show_step, config, k8s_actions,
+ k8s_logs, _):
+ """Test run of k8s conformance tests"""
+ k8s_actions.run_conformance()
+
+ @pytest.mark.grab_versions
+ @pytest.mark.grab_k8s_results(name=['virtlet_conformance.log',
+ 'report.xml'])
+ @pytest.mark.parametrize("_", [settings.ENV_NAME])
+ @pytest.mark.k8s_conformance_virtlet
+ def test_run_k8s_conformance_virtlet(self, show_step, config, k8s_actions,
+ k8s_logs, _):
+ """Test run of k8s virtlet conformance tests"""
+ k8s_actions.run_virtlet_conformance()