def test_did_call(self): self.manager.accept(testplan.MultiVisitor(runner.Visitor(), summary.SummaryVisitor(verbosity=summary.Detail.FULL, show_errors=True))) if self.manager.accept(self.results) is not None: self.fail('error running test plan: {}'.format(self.results.error)) self.assertEqual(0, self.results.environments['alps'].num_erroring_cases, "expected no error when the key name in 'call.target' is present in manifest")
def test_keyboard_interrupt(self): with self.assertRaises(KeyboardInterrupt): self.manager.accept(runner.Visitor()) if self.manager.accept(self.results) is not None: self.fail('unexpected error running test plan: {}'.format(self.results.error)) for _, suite in self.results.suites.items(): self.assertFalse(suite.completed, 'keyboard interrupt should cause incomplete test suite') for _, tcase in self.results.cases.items(): self.assertFalse(tcase.completed, 'keyboard interrupt should cause incomplete test case')
def setUp(self): self.environment_registry = environment_registry.new(convention.DEFAULT, [full_path('testdata/caserunner_test.manifest.yaml')]) self.manager = testplan.Manager( self.environment_registry, testplan.suites_from([full_path('testdata/caserunner_test.yaml')])) self.results = Visitor() self.manager.accept(testplan.MultiVisitor(runner.Visitor(), summary.SummaryVisitor(verbosity=summary.Detail.FULL, show_errors=True))) if self.manager.accept(self.results) is not None: self.fail('error running test plan: {}'.format(self.results.error))
def setUp(self): self.environment_registry = environment_registry.new( convention.DEFAULT, inputs.create_indexed_docs()) self.manager = testplan.Manager( self.environment_registry, testplan.suites_from( inputs.create_indexed_docs( *full_paths('testdata/caserunner_test_setup_failures.yaml')))) self.results = Visitor() self.manager.accept(testplan.MultiVisitor(runner.Visitor(fail_fast=False), summary.SummaryVisitor(verbosity=summary.Detail.FULL, show_errors=True))) if self.manager.accept(self.results) is not None: self.fail('error running test plan: {}'.format(self.results.error)) self.fname_re = re.compile('^filename: (.+)$', re.MULTILINE)
def main(): args, usage = parse_cli() if not args: exit(EXITCODE_SETUP_ERROR) if args.version: print("sampletester version {}".format(VERSION)) log_level = LOG_LEVELS[args.logging] or DEFAULT_LOG_LEVEL logging.basicConfig(level=log_level) logging.info("argv: {}".format(sys.argv)) try: test_files, user_paths = get_files(args.files) registry = environment_registry.new(args.convention, user_paths) test_suites = testplan.suites_from(test_files, args.suites, args.cases) if len(test_suites) == 0: exit(EXITCODE_SUCCESS) manager = testplan.Manager(registry, test_suites, args.envs) except Exception as e: logging.error("fatal error: {}".format(repr(e))) print("\nERROR: could not run tests because {}\n".format(e)) if DEBUGME: traceback.print_exc(file=sys.stdout) else: print(usage) exit(EXITCODE_SETUP_ERROR) verbosity = VERBOSITY_LEVELS[args.verbosity] quiet = verbosity == summary.Detail.NONE visitor = testplan.MultiVisitor( runner.Visitor(args.fail_fast), summary.SummaryVisitor(verbosity, not args.suppress_failures)) try: success = manager.accept(visitor) except KeyboardInterrupt: print('\nkeyboard interrupt; aborting') exit(EXITCODE_USER_ABORT) if not quiet or (not success and not args.suppress_failures): print() if success: print("Tests passed") else: print("Tests failed") if args.xunit: try: with smart_open(args.xunit) as xunit_output: xunit_output.write(manager.accept(xunit.Visitor())) if not quiet: print('xUnit output written to "{}"'.format(args.xunit)) except Exception as e: print("could not write xunit output to {}: {}".format( args.xunit, e)) if DEBUGME: traceback.print_exc(file=sys.stdout) exit(EXITCODE_FLAG_ERROR) exit(EXITCODE_SUCCESS if success else EXITCODE_TEST_FAILURE)