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
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
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