Exemple #1
0
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]
Exemple #3
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)
Exemple #4
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'))
Exemple #5
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(
         os.environ.get('INSTALLER_TYPE', None),
         os.environ.get('DEPLOY_SCENARIO', None),
         pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
 def __init__(self):
     self.tiers = tb.TierBuilder(CONST.INSTALLER_TYPE,
                                 CONST.DEPLOY_SCENARIO,
                                 CONST.functest_testcases_yaml)
Exemple #9
0
 def __init__(self):
     self.tiers = tb.TierBuilder(
         CONST.__getattribute__('INSTALLER_TYPE'),
         CONST.__getattribute__('DEPLOY_SCENARIO'),
         pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
Exemple #10
0
 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)
Exemple #11
0
 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)
Exemple #12
0
    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