diff --git a/tcp_tests/tests/system/test_cvp_pipelines.py b/tcp_tests/tests/system/test_cvp_pipelines.py
index b1a7369..057d268 100644
--- a/tcp_tests/tests/system/test_cvp_pipelines.py
+++ b/tcp_tests/tests/system/test_cvp_pipelines.py
@@ -99,6 +99,56 @@
 
     @pytest.mark.grab_versions
     @pytest.mark.parametrize("_", [settings.ENV_NAME])
+    @pytest.mark.run_cvp_tempest
+    def test_run_cvp_tempest(
+            self,
+            salt_actions,
+            show_step,
+            drivetrain_actions,
+            tempest_actions, _):
+        """Runner for Pipeline CVP - Tempest tests
+
+        Scenario:
+            1. Sync time on the environment nodes
+            2. Execute pre-requites for Tempest
+            3. Run cvp-tempest Jenkins job and get results
+            4. Download Tempest xml report from Jenkins node to foundation
+                node
+
+        """
+        salt = salt_actions
+        dt = drivetrain_actions
+        jenkins_start_timeout = 60
+        jenkins_build_timeout = 6 * 60 * 60
+
+        show_step(1)
+        salt.sync_time()
+
+        show_step(2)
+        tempest_actions.prepare(pipeline=True)
+
+        show_step(3)
+        job_name = 'cvp-tempest'
+        job_parameters = {
+            'TEMPEST_ENDPOINT_TYPE': 'internalURL',
+            'TEMPEST_TEST_PATTERN': 'set=full',
+        }
+        cvp_tempest_result = dt.start_job_on_jenkins(
+            job_name,
+            jenkins_tgt='I@docker:client:stack:jenkins and I@salt:master',
+            start_timeout=jenkins_start_timeout,
+            build_timeout=jenkins_build_timeout,
+            verbose=True,
+            job_parameters=job_parameters,
+            job_output_prefix='[ {job_name}/{build_number}:platform {time} ] ')
+        LOG.info('Job {0} result: {1}'.format(job_name, cvp_tempest_result))
+
+        show_step(4)
+        tempest_actions.fetch_arficats(
+            username='root', report_dir="/root/test/")
+
+    @pytest.mark.grab_versions
+    @pytest.mark.parametrize("_", [settings.ENV_NAME])
     @pytest.mark.run_cvp_func_sanity
     def test_run_cvp_func_sanity(self, salt_actions, show_step, _):
         """Runner for Pipeline CVP - Functional tests
@@ -352,53 +402,3 @@
         except jenkins.NotFoundException:
             raise jenkins.NotFoundException("{0}\n{1}".format(
                 description, '\n'.join(stages)))
-
-    @pytest.mark.grab_versions
-    @pytest.mark.parametrize("_", [settings.ENV_NAME])
-    @pytest.mark.run_cvp_tempest
-    def test_run_cvp_tempest(
-            self,
-            salt_actions,
-            show_step,
-            drivetrain_actions,
-            tempest_actions, _):
-        """Runner for Pipeline CVP - Tempest tests
-
-        Scenario:
-            1. Sync time on the environment nodes
-            2. Execute pre-requites for Tempest
-            3. Run cvp-tempest Jenkins job and get results
-            4. Download Tempest xml report from Jenkins node to foundation
-                node
-
-        """
-        salt = salt_actions
-        dt = drivetrain_actions
-        jenkins_start_timeout = 60
-        jenkins_build_timeout = 6 * 60 * 60
-
-        show_step(1)
-        salt.sync_time()
-
-        show_step(2)
-        tempest_actions.prepare(pipeline=True)
-
-        show_step(3)
-        job_name = 'cvp-tempest'
-        job_parameters = {
-            'TEMPEST_ENDPOINT_TYPE': 'internalURL',
-            'TEMPEST_TEST_PATTERN': 'set=full',
-        }
-        cvp_tempest_result = dt.start_job_on_jenkins(
-            job_name,
-            jenkins_tgt='I@docker:client:stack:jenkins and I@salt:master',
-            start_timeout=jenkins_start_timeout,
-            build_timeout=jenkins_build_timeout,
-            verbose=True,
-            job_parameters=job_parameters,
-            job_output_prefix='[ {job_name}/{build_number}:platform {time} ] ')
-        LOG.info('Job {0} result: {1}'.format(job_name, cvp_tempest_result))
-
-        show_step(4)
-        tempest_actions.fetch_arficats(
-            username='root', report_dir="/root/test/")
