def main(): CI_INSTALLER_TYPE = ft_constants.CI_INSTALLER_TYPE CI_SCENARIO = ft_constants.CI_SCENARIO file = ft_constants.FUNCTEST_TESTCASES_YAML _tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, file) if args.noclean: GlobalVariables.CLEAN_FLAG = False if args.report: GlobalVariables.REPORT_FLAG = True if args.test: source_rc_file() if _tiers.get_tier(args.test): run_tier(_tiers.get_tier(args.test)) elif _tiers.get_test(args.test): run_test(_tiers.get_test(args.test), _tiers.get_tier(args.test)) elif args.test == "all": run_all(_tiers) else: logger.error("Unknown test case or tier '%s', or not supported by " "the given scenario '%s'." % (args.test, CI_SCENARIO)) logger.debug("Available tiers are:\n\n%s" % _tiers) else: run_all(_tiers) logger.info("Execution exit value: %s" % GlobalVariables.OVERALL_RESULT) sys.exit(GlobalVariables.OVERALL_RESULT)
def setUp(self): self.dependency = { 'installer': 'test_installer', 'scenario': 'test_scenario' } self.testcase = { 'dependencies': self.dependency, 'enabled': 'true', 'case_name': 'test_name', 'criteria': 'test_criteria', 'blocking': 'test_blocking', 'description': 'test_desc', 'project_name': 'project_name' } self.dic_tier = { 'name': 'test_tier', 'order': 'test_order', 'ci_loop': 'test_ci_loop', 'description': 'test_desc', 'testcases': [self.testcase] } self.mock_yaml = mock.Mock() attrs = {'get.return_value': [self.dic_tier]} self.mock_yaml.configure_mock(**attrs) with mock.patch('functest.ci.tier_builder.yaml.safe_load', return_value=self.mock_yaml), \ mock.patch('six.moves.builtins.open', mock.mock_open()): self.tierbuilder = tier_builder.TierBuilder( 'test_installer', 'test_scenario', 'testcases_file') self.tier_obj = self.tierbuilder.tier_objects[0]
def main(): global CLEAN_FLAG global REPORT_FLAG CI_INSTALLER_TYPE = os.getenv('INSTALLER_TYPE') CI_SCENARIO = os.getenv('DEPLOY_SCENARIO') file = FUNCTEST_REPO + "/ci/testcases.yaml" _tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, file) if args.noclean: CLEAN_FLAG = False if args.report: REPORT_FLAG = True if args.test: source_rc_file() if _tiers.get_tier(args.test): run_tier(_tiers.get_tier(args.test)) elif _tiers.get_test(args.test): run_test(_tiers.get_test(args.test)) elif args.test == "all": run_all(_tiers) else: logger.error("Unknown test case or tier '%s', or not supported by " "the given scenario '%s'." % (args.test, CI_SCENARIO)) logger.debug("Available tiers are:\n\n%s" % _tiers) else: run_all(_tiers) sys.exit(0)
def __init__(self): self.executed_test_cases = {} self.overall_result = Result.EX_OK self.clean_flag = True self.report_flag = False self._tiers = tb.TierBuilder( CONST.__getattribute__('INSTALLER_TYPE'), CONST.__getattribute__('DEPLOY_SCENARIO'), pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
def __init__(self): self.executed_test_cases = {} self.overall_result = Result.EX_OK self.clean_flag = True self.report_flag = False self.tiers = tb.TierBuilder( os.environ.get('INSTALLER_TYPE', None), os.environ.get('DEPLOY_SCENARIO', None), pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
def get_criteria_by_test(testname): criteria = "" file = FUNCTEST_REPO + "/ci/testcases.yaml" tiers = tb.TierBuilder("", "", file) for tier in tiers.get_tiers(): for test in tier.get_tests(): if test.get_name() == testname: criteria = test.get_criteria() return criteria
def main(**kwargs): CI_INSTALLER_TYPE = CONST.INSTALLER_TYPE CI_SCENARIO = CONST.DEPLOY_SCENARIO file = CONST.functest_testcases_yaml _tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, file) if kwargs['noclean']: GlobalVariables.CLEAN_FLAG = False if kwargs['report']: GlobalVariables.REPORT_FLAG = True try: if kwargs['test']: source_rc_file() if _tiers.get_tier(kwargs['test']): GlobalVariables.EXECUTED_TEST_CASES = generate_report.init( [_tiers.get_tier(kwargs['test'])]) run_tier(_tiers.get_tier(kwargs['test'])) elif _tiers.get_test(kwargs['test']): run_test(_tiers.get_test(kwargs['test']), _tiers.get_tier(kwargs['test']), kwargs['test']) elif kwargs['test'] == "all": run_all(_tiers) else: logger.error("Unknown test case or tier '%s', " "or not supported by " "the given scenario '%s'." % (kwargs['test'], CI_SCENARIO)) logger.debug("Available tiers are:\n\n%s" % _tiers) return Result.EX_ERROR else: run_all(_tiers) except Exception as e: logger.error(e) GlobalVariables.OVERALL_RESULT = Result.EX_ERROR logger.info("Execution exit value: %s" % GlobalVariables.OVERALL_RESULT) return GlobalVariables.OVERALL_RESULT
def __init__(self): self.tiers = tb.TierBuilder(CONST.INSTALLER_TYPE, CONST.DEPLOY_SCENARIO, CONST.functest_testcases_yaml)
def __init__(self): self.tiers = tb.TierBuilder( CONST.__getattribute__('INSTALLER_TYPE'), CONST.__getattribute__('DEPLOY_SCENARIO'), pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
def __init__(self): CI_INSTALLER_TYPE = os.getenv('INSTALLER_TYPE') CI_SCENARIO = os.getenv('DEPLOY_SCENARIO') testcases = FUNCTEST_REPO + "/ci/testcases.yaml" self.tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, testcases)
def __init__(self): CI_INSTALLER_TYPE = ft_constants.CI_INSTALLER_TYPE CI_SCENARIO = ft_constants.CI_SCENARIO testcases = ft_constants.FUNCTEST_TESTCASES_YAML self.tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, testcases)
def main(self, **kwargs): _tiers = tb.TierBuilder( CONST.__getattribute__('INSTALLER_TYPE'), CONST.__getattribute__('DEPLOY_SCENARIO'), pkg_resources.resource_filename('functest', 'ci/testcases.yaml')) if kwargs['noclean']: self.clean_flag = False if kwargs['report']: self.report_flag = True try: if kwargs['test']: self.source_rc_file() logger.debug("Test args: %s", kwargs['test']) if _tiers.get_tier(kwargs['test']): self.run_tier(_tiers.get_tier(kwargs['test'])) elif _tiers.get_test(kwargs['test']): result = self.run_test( _tiers.get_test(kwargs['test']), _tiers.get_tier_name(kwargs['test']), kwargs['test']) if result != testcase.TestCase.EX_OK: logger.error("The test case '%s' failed.", kwargs['test']) self.overall_result = Result.EX_ERROR elif kwargs['test'] == "all": self.run_all(_tiers) else: logger.error("Unknown test case or tier '%s', " "or not supported by " "the given scenario '%s'." % (kwargs['test'], CONST.__getattribute__('DEPLOY_SCENARIO'))) logger.debug("Available tiers are:\n\n%s", _tiers) return Result.EX_ERROR else: self.run_all(_tiers) except BlockingTestFailed: pass except Exception: logger.exception("Failures when running testcase(s)") self.overall_result = Result.EX_ERROR msg = prettytable.PrettyTable(header_style='upper', padding_width=5, field_names=['env var', 'value']) for env_var in [ 'INSTALLER_TYPE', 'DEPLOY_SCENARIO', 'BUILD_TAG', 'CI_LOOP' ]: msg.add_row([env_var, CONST.__getattribute__(env_var)]) logger.info("Deployment description: \n\n%s\n", msg) if len(self.executed_test_cases) > 1: msg = prettytable.PrettyTable(header_style='upper', padding_width=5, field_names=[ 'test case', 'project', 'tier', 'duration', 'result' ]) for test_case in self.executed_test_cases: result = 'PASS' if (test_case.is_successful() == test_case.EX_OK) else 'FAIL' msg.add_row([ test_case.case_name, test_case.project_name, _tiers.get_tier_name(test_case.case_name), test_case.get_duration(), result ]) logger.info("FUNCTEST REPORT: \n\n%s\n", msg) logger.info("Execution exit value: %s" % self.overall_result) return self.overall_result