publish conditions implemented

This commit is contained in:
Dirk Alders 2021-03-08 12:24:58 +01:00
parent 6e3cf6df4f
commit 5417bf1cba
3 changed files with 38 additions and 18 deletions

View File

@ -4,10 +4,11 @@
import json import json
import os import os
import report
import subprocess import subprocess
import fstools import fstools
from unittest.output import STATUS_AVAILABLE, STATUS_CHANGED, STATUS_CLEAN, STATUS_EXISTS, STATUS_FAILED, STATUS_IN_WORK, STATUS_MISSING, STATUS_OLD, STATUS_RELEASED, STATUS_UNKNOWN from unittest.output import STATUS_AVAILABLE, STATUS_CHANGED, STATUS_CLEAN, STATUS_EXISTS, STATUS_FAILED, STATUS_IN_WORK, STATUS_MISSING, STATUS_OLD, STATUS_RELEASED, STATUS_UNKNOWN, STATUS_INCOMPLETE
JSONLOG_FNAME = 'unittest.json' JSONLOG_FNAME = 'unittest.json'
@ -65,6 +66,7 @@ TOBI_VERSION = "Version"
# SUBKEYS FOR MAIN_KEY_TESTRUNS # SUBKEYS FOR MAIN_KEY_TESTRUNS
# #
TRUN_TESTCASES = 'testcases' TRUN_TESTCASES = 'testcases'
TRUN_EXEC_LVL = 'testcase_execution_level'
# #
# SUBKEYS FOR MAIN_KEY_UNITTEST_INFO # SUBKEYS FOR MAIN_KEY_UNITTEST_INFO
# #
@ -123,12 +125,14 @@ def __get_release_state__(ut_folder, lib):
return STATUS_MISSING return STATUS_MISSING
else: else:
ut_status = ut_data.get(MAIN_KEY_TESTOBJECT_INFO, {}).get(TOBI_STATE, 'unknown') ut_status = ut_data.get(MAIN_KEY_TESTOBJECT_INFO, {}).get(TOBI_STATE, 'unknown')
if ut_status == TOBI_STATE_RELEASED: ut_level = ut_data.get(MAIN_KEY_TESTRUNS, [{}, {}])[0].get(TRUN_EXEC_LVL, report.TCEL_SINGLE)
if ut_status == TOBI_STATE_RELEASED and ut_level == report.TCEL_FULL:
return STATUS_RELEASED return STATUS_RELEASED
elif ut_status == TOBI_STATE_IN_DEVELOPMENT: elif ut_status != TOBI_STATE_RELEASED:
return STATUS_IN_WORK return STATUS_IN_WORK
elif ut_level != report.TCEL_FULL:
return STATUS_INCOMPLETE
else: else:
print(ut_status)
return STATUS_UNKNOWN return STATUS_UNKNOWN

View File

@ -14,6 +14,7 @@ STATUS_CHANGED = 'CHANGED'
STATUS_EXISTS = 'EXISTS' STATUS_EXISTS = 'EXISTS'
STATUS_IN_WORK = 'IN_WORK' STATUS_IN_WORK = 'IN_WORK'
STATUS_OLD = 'OLD' STATUS_OLD = 'OLD'
STATUS_INCOMPLETE = 'INCOMPLETE'
# #
STATUS_FAILED = 'FAILED' STATUS_FAILED = 'FAILED'
STATUS_MISSING = 'MISSING' STATUS_MISSING = 'MISSING'
@ -41,6 +42,7 @@ STATUS_COLORS = {
STATUS_EXISTS: termcolors.WARNING, STATUS_EXISTS: termcolors.WARNING,
STATUS_IN_WORK: termcolors.WARNING, STATUS_IN_WORK: termcolors.WARNING,
STATUS_OLD: termcolors.WARNING, STATUS_OLD: termcolors.WARNING,
STATUS_INCOMPLETE: termcolors.WARNING,
# #
STATUS_FAILED: termcolors.FAIL, STATUS_FAILED: termcolors.FAIL,
STATUS_MISSING: termcolors.FAIL, STATUS_MISSING: termcolors.FAIL,

42
run.py
View File

@ -325,21 +325,35 @@ def unittest_finalise(ut_folder):
def unittest_publish(ut_folder): def unittest_publish(ut_folder):
config = imp.load_source('', jsonlog.get_ut_config(ut_folder)) config = imp.load_source('', jsonlog.get_ut_config(ut_folder))
# output.print_header('Checking testrun state')
output.print_header('Copy unittest files to library') output.print_action('Release State...')
target_folder = os.path.join(config.lib_path, '_testresults_') rs = jsonlog.get_ut_release_state(ut_folder)
output.print_action('Copying Unittest Files to %s' % target_folder) output.print_info(rs)
if not os.path.exists(target_folder): output.print_action('Testcase Integrity...')
output.print_info('Creating folder %s' % target_folder) tci = jsonlog.get_ut_testcase_integrity(ut_folder)
fstools.mkdir(target_folder) output.print_info(tci)
output.print_action('Source Integrity...')
sri = jsonlog.get_ut_src_integrity(ut_folder)
output.print_info(sri)
if rs == jsonlog.STATUS_RELEASED and tci == jsonlog.STATUS_CLEAN and sri == jsonlog.STATUS_CLEAN:
output.print_header('Copy unittest files to library')
target_folder = os.path.join(config.lib_path, '_testresults_')
output.print_action('Copying Unittest Files to %s' % target_folder)
if not os.path.exists(target_folder):
output.print_info('Creating folder %s' % target_folder)
fstools.mkdir(target_folder)
else:
for fn in os.listdir(target_folder):
remove_file(os.path.join(target_folder, fn))
for fn in REPORT_FILES:
src = testresults_filename(ut_folder, fn)
dst = os.path.join(target_folder, fn)
output.print_info('copying %s -> %s' % (src, dst))
shutil.copyfile(src, dst)
else: else:
for fn in os.listdir(target_folder): output.print_action('Proceed Conditions...')
remove_file(os.path.join(target_folder, fn)) output.print_info(output.STATUS_FAILED)
for fn in REPORT_FILES:
src = testresults_filename(ut_folder, fn)
dst = os.path.join(target_folder, fn)
output.print_info('copying %s -> %s' % (src, dst))
shutil.copyfile(src, dst)
def unittest_status(ut_folder): def unittest_status(ut_folder):