mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 15:35:46 +07:00
wip
This commit is contained in:
parent
a00fa04e07
commit
60b4de6490
@ -913,17 +913,20 @@ class ConfigStep(models.Model):
|
||||
log_time = self._get_log_last_write(build)
|
||||
if log_time:
|
||||
build.job_end = log_time
|
||||
if self.job_type == 'python' and self.python_result_code and self.python_result_code != PYTHON_DEFAULT:
|
||||
build.write(self._make_python_results(build))
|
||||
elif self.job_type in ['install_odoo', 'python']:
|
||||
if self.job_type == 'python':
|
||||
if self.python_result_code and self.python_result_code != PYTHON_DEFAULT:
|
||||
self._make_python_results(build)
|
||||
elif self.test_enable:
|
||||
self._make_tests_results(build)
|
||||
elif self.job_type == 'install_odoo':
|
||||
if self.coverage:
|
||||
build.write(self._make_coverage_results(build))
|
||||
if self.test_enable or self.test_tags:
|
||||
build.write(self._make_tests_results(build))
|
||||
self._make_tests_results(build)
|
||||
|
||||
elif self.job_type == 'test_upgrade':
|
||||
build.write(self._make_upgrade_results(build))
|
||||
self._make_upgrade_results(build)
|
||||
elif self.job_type == 'restore':
|
||||
build.write(self._make_restore_results(build))
|
||||
self._make_restore_results(build)
|
||||
|
||||
def _make_python_results(self, build):
|
||||
eval_ctx = self._make_python_ctx(build)
|
||||
@ -932,7 +935,8 @@ class ConfigStep(models.Model):
|
||||
# todo check return_value or write in try except. Example: local result setted to wrong value
|
||||
if not isinstance(return_value, dict):
|
||||
raise RunbotException('python_result_code must set return_value to a dict values on build')
|
||||
return return_value
|
||||
if return_value:
|
||||
build.write(return_value)
|
||||
|
||||
def _make_coverage_results(self, build):
|
||||
build_values = {}
|
||||
@ -952,7 +956,6 @@ class ConfigStep(models.Model):
|
||||
return build_values
|
||||
|
||||
def _make_upgrade_results(self, build):
|
||||
build_values = {}
|
||||
build._log('upgrade', 'Getting results for build %s' % build.dest)
|
||||
|
||||
if build.local_result != 'ko':
|
||||
@ -964,10 +967,7 @@ class ConfigStep(models.Model):
|
||||
self._check_build_ended,
|
||||
self._check_warning,
|
||||
]
|
||||
local_result = self._get_checkers_result(build, checkers)
|
||||
build_values['local_result'] = build._get_worst_result([build.local_result, local_result])
|
||||
|
||||
return build_values
|
||||
build.local_result = self._get_checkers_result(build, checkers)
|
||||
|
||||
def _check_module_states(self, build):
|
||||
if not build._is_file('logs/modules_states.txt'):
|
||||
@ -1037,7 +1037,6 @@ class ConfigStep(models.Model):
|
||||
return 'ok'
|
||||
|
||||
def _make_tests_results(self, build):
|
||||
build_values = {}
|
||||
build._log('run', 'Getting results for build %s' % build.dest)
|
||||
|
||||
if build.local_result != 'ko':
|
||||
@ -1045,25 +1044,20 @@ class ConfigStep(models.Model):
|
||||
self._check_log,
|
||||
self._check_module_loaded,
|
||||
self._check_error,
|
||||
self._check_build_ended
|
||||
self._check_build_ended,
|
||||
]
|
||||
if build.local_result != 'warn':
|
||||
checkers.append(self._check_warning)
|
||||
|
||||
local_result = self._get_checkers_result(build, checkers)
|
||||
build_values['local_result'] = build._get_worst_result([build.local_result, local_result])
|
||||
return build_values
|
||||
build.local_result = self._get_checkers_result(build, checkers)
|
||||
|
||||
def _make_restore_results(self, build):
|
||||
build_values = {}
|
||||
if build.local_result != 'warn':
|
||||
if build.local_result not in ['ko', 'warn']:
|
||||
checkers = [
|
||||
self._check_log,
|
||||
self._check_restore_ended
|
||||
self._check_restore_ended,
|
||||
]
|
||||
local_result = self._get_checkers_result(build, checkers)
|
||||
build_values['local_result'] = build._get_worst_result([build.local_result, local_result])
|
||||
return build_values
|
||||
build.local_result = self._get_checkers_result(build, checkers)
|
||||
|
||||
def _make_stats(self, build):
|
||||
if not self.make_stats: # TODO garbage collect non sticky stat
|
||||
|
@ -782,8 +782,32 @@ Initiating shutdown
|
||||
|
||||
# no result defined
|
||||
config_step.python_result_code = ""
|
||||
mock_make_tests_results.return_value = {'local_result': 'warn'}
|
||||
|
||||
def set_ok(self, build):
|
||||
build.local_result = 'ok'
|
||||
|
||||
def set_warning(self, build):
|
||||
build.local_result = 'warn'
|
||||
|
||||
def set_ko(self, build):
|
||||
build.local_result = 'ko'
|
||||
|
||||
mock_make_tests_results.side_effect = set_warning
|
||||
config_step._make_results(build)
|
||||
self.assertEqual(build.local_result, 'warn')
|
||||
|
||||
mock_make_tests_results.side_effect = set_ok
|
||||
config_step._make_results(build)
|
||||
self.assertEqual(build.local_result, 'warn')
|
||||
|
||||
# can go to error from warning
|
||||
mock_make_tests_results.side_effect = set_ko
|
||||
config_step._make_results(build)
|
||||
self.assertEqual(build.local_result, 'ko')
|
||||
|
||||
# cannot go to ok
|
||||
mock_make_tests_results.side_effect = set_ok
|
||||
config_step._make_results(build)
|
||||
self.assertEqual(build.local_result, 'ko')
|
||||
|
||||
# TODO add generic test to copy_paste _run_* in a python step
|
||||
|
Loading…
Reference in New Issue
Block a user