Modify TestCase constructor attributes
[functest.git] / functest / tests / unit / utils / test_functest_utils.py
index ce9086a..22cadf0 100644 (file)
@@ -33,6 +33,7 @@ class FunctestUtilsTesting(unittest.TestCase):
         self.installer = 'test_installer'
         self.scenario = 'test_scenario'
         self.build_tag = 'jenkins-functest-fuel-opnfv-jump-2-daily-master-190'
+        self.build_tag_week = 'jenkins-functest-fuel-baremetal-weekly-master-8'
         self.version = 'master'
         self.node_name = 'test_node_name'
         self.project = 'test_project'
@@ -53,9 +54,11 @@ class FunctestUtilsTesting(unittest.TestCase):
         self.cmd = 'test_cmd'
         self.output_file = 'test_output_file'
         self.testname = 'testname'
-        self.testcase_dict = {'name': 'testname', 'criteria': self.criteria}
+        self.testcase_dict = {'case_name': 'testname',
+                              'criteria': self.criteria}
         self.parameter = 'general.openstack.image_name'
         self.config_yaml = 'test_config_yaml-'
+        self.db_url_env = 'http://foo/testdb'
         self.file_yaml = {'general': {'openstack': {'image_name':
                                                     'test_image_name'}}}
 
@@ -131,15 +134,17 @@ class FunctestUtilsTesting(unittest.TestCase):
             self.assertEqual(functest_utils.get_installer_type(),
                              self.installer)
 
-    @mock.patch('functest.utils.functest_utils.logger.error')
-    def test_get_scenario_failed(self, mock_logger_error):
+    @mock.patch('functest.utils.functest_utils.logger.info')
+    def test_get_scenario_failed(self, mock_logger_info):
         with mock.patch.dict(os.environ,
                              {},
                              clear=True):
             self.assertEqual(functest_utils.get_scenario(),
-                             "Unknown_scenario")
-            mock_logger_error.assert_called_once_with("Impossible to retrieve"
-                                                      " the scenario")
+                             "os-nosdn-nofeature-noha")
+            mock_logger_info.assert_called_once_with("Impossible to retrieve "
+                                                     "the scenario.Use "
+                                                     "default "
+                                                     "os-nosdn-nofeature-noha")
 
     def test_get_scenario_default(self):
         with mock.patch.dict(os.environ,
@@ -149,26 +154,36 @@ class FunctestUtilsTesting(unittest.TestCase):
                              self.scenario)
 
     @mock.patch('functest.utils.functest_utils.get_build_tag')
-    def test_get_version_default(self, mock_get_build_tag):
+    def test_get_version_daily_job(self, mock_get_build_tag):
         mock_get_build_tag.return_value = self.build_tag
         self.assertEqual(functest_utils.get_version(), self.version)
 
+    @mock.patch('functest.utils.functest_utils.get_build_tag')
+    def test_get_version_weekly_job(self, mock_get_build_tag):
+        mock_get_build_tag.return_value = self.build_tag_week
+        self.assertEqual(functest_utils.get_version(), self.version)
+
+    @mock.patch('functest.utils.functest_utils.get_build_tag')
+    def test_get_version_with_dummy_build_tag(self, mock_get_build_tag):
+        mock_get_build_tag.return_value = 'whatever'
+        self.assertEqual(functest_utils.get_version(), 'unknown')
+
     @mock.patch('functest.utils.functest_utils.get_build_tag')
     def test_get_version_unknown(self, mock_get_build_tag):
         mock_get_build_tag.return_value = "unknown_build_tag"
         self.assertEqual(functest_utils.get_version(), "unknown")
 
-    @mock.patch('functest.utils.functest_utils.logger.error')
-    def test_get_pod_name_failed(self, mock_logger_error):
+    @mock.patch('functest.utils.functest_utils.logger.info')
+    def test_get_pod_name_failed(self, mock_logger_info):
         with mock.patch.dict(os.environ,
                              {},
                              clear=True):
             self.assertEqual(functest_utils.get_pod_name(),
                              "unknown-pod")
-            mock_logger_error.assert_called_once_with("Unable to retrieve "
-                                                      "the POD name from "
-                                                      "environment. Using "
-                                                      "pod name 'unknown-pod'")
+            mock_logger_info.assert_called_once_with("Unable to retrieve "
+                                                     "the POD name from "
+                                                     "environment. Using "
+                                                     "pod name 'unknown-pod'")
 
     def test_get_pod_name_default(self):
         with mock.patch.dict(os.environ,
@@ -177,15 +192,15 @@ class FunctestUtilsTesting(unittest.TestCase):
             self.assertEqual(functest_utils.get_pod_name(),
                              self.node_name)
 
-    @mock.patch('functest.utils.functest_utils.logger.error')
-    def test_get_build_tag_failed(self, mock_logger_error):
+    @mock.patch('functest.utils.functest_utils.logger.info')
+    def test_get_build_tag_failed(self, mock_logger_info):
         with mock.patch.dict(os.environ,
                              {},
                              clear=True):
             self.assertEqual(functest_utils.get_build_tag(),
-                             "unknown_build_tag")
-            mock_logger_error.assert_called_once_with("Impossible to retrieve"
-                                                      " the build tag")
+                             "none")
+            mock_logger_info.assert_called_once_with("Impossible to retrieve"
+                                                     " the build tag")
 
     def test_get_build_tag_default(self):
         with mock.patch.dict(os.environ,
@@ -194,8 +209,17 @@ class FunctestUtilsTesting(unittest.TestCase):
             self.assertEqual(functest_utils.get_build_tag(),
                              self.build_tag)
 
+    def test_get_db_url_env_var(self):
+        with mock.patch.dict(os.environ,
+                             {'TEST_DB_URL': self.db_url_env,
+                              'CONFIG_FUNCTEST_YAML':
+                              "./functest/ci/config_functest.yaml"},
+                             clear=True):
+            self.assertEqual(functest_utils.get_db_url(),
+                             self.db_url_env)
+
     @mock.patch('functest.utils.functest_utils.get_functest_config')
-    def test_get_db_url(self, mock_get_functest_config):
+    def test_get_db_url_default(self, mock_get_functest_config):
         mock_get_functest_config.return_value = self.db_url
         self.assertEqual(functest_utils.get_db_url(), self.db_url)
         mock_get_functest_config.assert_called_once_with('results.test_db_url')
@@ -272,25 +296,6 @@ class FunctestUtilsTesting(unittest.TestCase):
     def test_push_results_to_db_missing_buildtag(self):
         self._test_push_results_to_db_missing_env('BUILD_TAG')
 
-    def test_push_results_to_db_incorrect_buildtag(self):
-        dic = self._get_env_dict(None)
-        dic['BUILD_TAG'] = 'incorrect_build_tag'
-        with mock.patch('functest.utils.functest_utils.get_db_url',
-                        return_value=self.db_url), \
-                mock.patch.dict(os.environ,
-                                dic,
-                                clear=True), \
-                mock.patch('functest.utils.functest_utils.logger.error') \
-                as mock_logger_error:
-            self.assertFalse(functest_utils.
-                             push_results_to_db(self.project, self.case_name,
-                                                self.start_date,
-                                                self.stop_date,
-                                                self.criteria, self.details))
-            mock_logger_error.assert_called_once_with("Please fix BUILD_TAG"
-                                                      " env var: incorrect_"
-                                                      "build_tag")
-
     def test_push_results_to_db_request_post_failed(self):
         dic = self._get_env_dict(None)
         with mock.patch('functest.utils.functest_utils.get_db_url',