def run_bundle_test(args, env_name, test_plan=None, env=None):
    """Run Bundletester and get the test results.

    :return: test result and test status.
    """
    test_result = StringIO()
    args.output = test_result
    args.tests = test_plan.get('tests') if test_plan else None
    args.environment = env_name
    args.reporter = 'json'
    args.testdir = test_plan.get('bundle') if test_plan else args.testdir
    try:
        status = tester.main(args)
    except Exception:
        tb = traceback.format_exc()
        error = "Exception ({}):\n{}".format(env_name, tb)
        logging.error(error)
        return_code = 1
        failure = 'Exception'
        if env:
            started = is_machine_agent_started(env.status(),
                                               args.juju_major_version)
            if started is False:
                return_code = PROVISIONING_ERROR_CODE
                failure = 'Provisioning Failure'
        test_result = generate_test_result(error,
                                           test=failure,
                                           returncode=return_code)
        return test_result, None
    return test_result.getvalue(), status
def run_bundle_test(args, env_name, test_plan=None, env=None):
    """Run Bundletester and get the test results.

    :return: test result and test status.
    """
    test_result = StringIO()
    args.output = test_result
    args.tests = test_plan.get('tests') if test_plan else None
    args.environment = env_name
    args.reporter = 'json'
    args.testdir = test_plan.get('bundle') if test_plan else args.testdir
    try:
        status = tester.main(args)
    except Exception:
        tb = traceback.format_exc()
        error = "Exception ({}):\n{}".format(env_name, tb)
        logging.error(error)
        return_code = 1
        failure = 'Exception'
        if env:
            started = is_machine_agent_started(
                env.status(), args.juju_major_version)
            if started is False:
                return_code = PROVISIONING_ERROR_CODE
                failure = 'Provisioning Failure'
        test_result = generate_test_result(
            error, test=failure, returncode=return_code)
        return test_result, None
    return test_result.getvalue(), status
Exemplo n.º 3
0
def run_bundle_test(args, env, test_plan=None):
    test_result = StringIO()
    args.output = test_result
    args.tests = test_plan.get('tests') if test_plan else None
    args.environment = env
    args.reporter = 'json'
    args.testdir = test_plan.get('bundle') if test_plan else args.testdir
    status = tester.main(args)
    return test_result.getvalue(), status
Exemplo n.º 4
0
    def run_tests(self, test_plan, env):
        """
        Run BundleTester and create or update the report accordingly.

        :return: True if the test environment was provisioned and deployed
        """
        env_name = env.name
        bundletester_output = StringIO()
        self.args.output = bundletester_output
        self.args.tests = test_plan.tests if test_plan else None
        self.args.environment = env_name
        self.args.reporter = 'json'
        self.args.testdir = test_plan.bundle
        if test_plan.bundle_file:
            self.args.bundle = test_plan.bundle_file
        status = tester.main(self.args)
        result = model.SuiteResult.from_bundletester_output(
            env.provider_name, bundletester_output.getvalue())
        result.bundle_yaml = get_bundle_yaml(status)
        return result
Exemplo n.º 5
0
    def run_tests(self, test_plan, env):
        """
        Run BundleTester and create or update the report accordingly.

        :return: True if the test environment was provisioned and deployed
        """
        env_name = env.name
        bundletester_output = StringIO()
        self.args.output = bundletester_output
        self.args.tests = test_plan.tests if test_plan else None
        self.args.environment = env_name
        self.args.reporter = 'json'
        self.args.testdir = test_plan.bundle
        if test_plan.bundle_file:
            self.args.bundle = test_plan.bundle_file
        status = tester.main(self.args)
        result = model.SuiteResult.from_bundletester_output(
            env.provider_name,
            bundletester_output.getvalue())
        result.bundle_yaml = get_bundle_yaml(status)
        return result