Bugfix: Fix Dovetail 2 bugs found with CI results 84/67884/2
authorxudan <xudan16@huawei.com>
Fri, 17 May 2019 08:13:30 +0000 (04:13 -0400)
committerDan Xu <xudan16@huawei.com>
Mon, 10 Jun 2019 03:24:16 +0000 (03:24 +0000)
There are 2 bugs found with CI results of functest.tempest.neutron_tempest_plugin_api
and all HA test cases.
Yardtsick conf file does't mapping the keyfile to Yardstick container, so all
HA test cases got SSHERROR.
Also remove some useless debug msg to make dovetail.log more concise.

Change-Id: I63c12d1b91ed5f8f8a893689384685ca9215f367
Signed-off-by: xudan <xudan16@huawei.com>
docs/testing/user/userguide/testing_guide.rst
dovetail/report.py
dovetail/testcase.py
dovetail/tests/unit/test_report.py
dovetail/tests/unit/test_testcase.py
etc/conf/yardstick_config.yml
etc/testcase/functest.tempest.neutron_tempest_plugin_api.yml [moved from etc/testcase/functest.neutron_tempest_plugin_api.yml with 99% similarity]

index f4d9bb7..5636c98 100644 (file)
@@ -360,10 +360,9 @@ A sample is provided below to show the required syntax when using a key file.
        user: root
 
        # Private ssh key for accessing the controller nodes. If a keyfile is
-       # being used, the path specified **must** be as shown below as this
-       # is the location of the user-provided private ssh key inside the
-       # Yardstick container.
-       key_filename: /home/opnfv/userconfig/pre_config/id_rsa
+       # being used instead of password, it **must** be put under
+       # ``$DOVETAIL_HOME/pre_config/.
+       key_filename: /home/dovetail/pre_config/id_rsa
 
 Under nodes, repeat entries for name, role, ip, user and password or key file for each of the
 controller/compute nodes that comprise the SUT. Use a '-' to separate each of the entries.
index 65c4148..864f116 100644 (file)
@@ -138,7 +138,6 @@ class Report(object):
                         'result': testcase.sub_testcase_passed(sub_test)
                     })
             report_obj['testcases_list'].append(testcase_inreport)
-        self.logger.debug(json.dumps(report_obj))
         return report_obj
 
     def generate(self, testcase_list, duration):
@@ -621,7 +620,6 @@ class FunctestChecker(object):
 
         testcase_passed = 'PASS'
         for sub_testcase in sub_testcase_list:
-            self.logger.debug('Check sub_testcase: {}'.format(sub_testcase))
             try:
                 if self.get_sub_testcase(sub_testcase,
                                          db_result['details']['success']):
index b6f54fa..279c6ba 100644 (file)
@@ -77,8 +77,6 @@ class Testcase(object):
 
     def sub_testcase_passed(self, name, passed=None):
         if passed is not None:
-            self.logger.debug(
-                'sub_testcase_passed: {} {}'.format(name, passed))
             self.sub_testcase_status[name] = passed
         return self.sub_testcase_status[name]
 
@@ -145,8 +143,6 @@ class Testcase(object):
             try:
                 with open(test_list, 'w+') as src_file:
                     for sub_test in self.sub_testcase():
-                        self.logger.debug(
-                            'Save test cases {}'.format(sub_test))
                         src_file.write(sub_test + '\n')
                 self.logger.debug('Save test cases to {}'.format(test_list))
                 return test_list
index 4840f2b..849b31d 100644 (file)
@@ -1440,16 +1440,6 @@ class ReportTesting(unittest.TestCase):
         checker.check(testcase_obj, db_result)
 
         testcase_obj.sub_testcase.assert_called_once_with()
-        logger_obj.debug.assert_has_calls([
-            call('Check sub_testcase: subt_a'),
-            call('Check sub_testcase: subt_b'),
-            call('Check sub_testcase: subt_c'),
-            call('Check sub_testcase: subt_d')])
-        testcase_obj.sub_testcase_passed.assert_has_calls([
-            call('subt_a', 'PASS'),
-            call('subt_b', 'SKIP'),
-            call('subt_c', 'FAIL'),
-            call('subt_d', 'FAIL')])
         testcase_obj.passed.assert_has_calls([call('PASS'), call('FAIL')])
 
     @patch('dovetail.report.dt_logger')
index b915556..06a2302 100644 (file)
@@ -145,8 +145,6 @@ class TestcaseTesting(unittest.TestCase):
 
         result = testcase.sub_testcase_passed('name', 'passed')
 
-        logger_obj.debug.assert_called_once_with(
-            'sub_testcase_passed: name passed')
         self.assertEquals('passed', result)
 
     def test_validate_type(self):
@@ -265,9 +263,8 @@ class TestcaseTesting(unittest.TestCase):
         mock_path.join.assert_called_once_with('value', 'tempest_custom.txt')
         mock_open.assert_called_once_with(file_path, 'w+')
         file_obj.write.assert_called_once_with(sub_test + '\n')
-        logger_obj.debug.assert_has_calls([
-            call('Save test cases {}'.format(sub_test)),
-            call('Save test cases to {}'.format(file_path))])
+        logger_obj.debug.assert_called_once_with(
+            'Save test cases to {}'.format(file_path))
         self.assertEquals(file_path, result)
 
     @patch('__builtin__.open')
index aec569c..e4758c8 100644 (file)
@@ -48,6 +48,7 @@ yardstick:
     - '{{dovetail_home}}/pre_config/pod.yaml:{{pod_file}}'
     - '{{dovetail_home}}/images:/home/opnfv/images'
     - '{{dovetail_home}}/results:{{result_dir}}'
+    - '{{dovetail_home}}/pre_config:{{dovetail_home}}/pre_config'
   pre_condition:
     - 'echo this is pre_condition'
   cmds:
@@ -23,7 +23,8 @@ functest.tempest.neutron_tempest_plugin_api:
       - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.functest.log
       - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.log
       - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.html
-    check_results_file: 'functest_results.txt'
+    check_results_files:
+      - 'functest_results.txt'
     sub_testcase_list:
       - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_create
       - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_get_rules_by_policy