def _(): one = Test(fn=named, module_name="", tags=["apples", "bananas"]) two = Test(fn=named, module_name="", tags=["bananas", "carrots"]) three = Test(fn=named, module_name="", tags=["bananas"]) tag_expr = parse("apples or bananas and not carrots") results = list(filter_tests([one, two, three], tag_expr=tag_expr)) assert results == [one, three]
def _(): one = Test(fn=named, module_name="one", tags=["apples"]) two = Test(fn=named, module_name="two", tags=["apples"]) tag_expr = parse("apples") results = list(filter_tests([one, two], query="two", tag_expr=tag_expr)) # Both tests match the tag expression, but only two matches the search query # because the query matches the module name for the test. assert results == [two]
def test( ctx: click.Context, config: str, config_path: Optional[Path], path: Tuple[str], exclude: Tuple[str], search: Optional[str], tags: Optional[Expression], fail_limit: Optional[int], test_output_style: str, order: str, capture_output: bool, show_slowest: int, show_diff_symbols: bool, dry_run: bool, ): """Run tests.""" start_run = default_timer() paths = [Path(p) for p in path] mod_infos = get_info_for_modules(paths, exclude) modules = list(load_modules(mod_infos)) unfiltered_tests = get_tests_in_modules(modules, capture_output) filtered_tests = list( filter_tests( unfiltered_tests, query=search, tag_expr=tags, )) # Rewrite assertions in each test tests = rewrite_assertions_in_tests(filtered_tests) time_to_collect = default_timer() - start_run suite = Suite(tests=tests) test_results = suite.generate_test_runs(order=order, dry_run=dry_run) writer = SimpleTestResultWrite( suite=suite, test_output_style=test_output_style, config_path=config_path, show_diff_symbols=show_diff_symbols, ) writer.output_header(time_to_collect=time_to_collect) results = writer.output_all_test_results(test_results, fail_limit=fail_limit) time_taken = default_timer() - start_run writer.output_test_result_summary(results, time_taken, show_slowest) exit_code = get_exit_code(results) sys.exit(exit_code.value)
def _(): t = Test(fn=named, module_name="", tags=[]) tag_expr = parse("apples") results = list(filter_tests([t], tag_expr=tag_expr)) assert results == []
def _(): apples = Test(fn=named, module_name="", tags=["apples"]) bananas = Test(fn=named, module_name="", tags=["bananas"]) results = list(filter_tests([apples, bananas], tag_expr=parse("apples"))) assert results == [apples]
def _(tests=tests_to_search): results = filter_tests(tests, query="92qj3f9i") with raises(StopIteration): next(results)
def _(tests=tests_to_search, named=named_test): results = filter_tests(tests, query="fox") assert list(results) == [named]
def _(): one = Test(fn=named, module_name="one", tags=["apples"]) two = Test(fn=named, module_name="two", tags=["bananas"]) tag_expr = parse("carrots") results = list(filter_tests([one, two], tag_expr=tag_expr)) assert results == []
def test( ctx: click.Context, config: str, config_path: Optional[Path], path: Tuple[str], exclude: Tuple[str], search: Optional[str], tags: Optional[Expression], fail_limit: Optional[int], test_output_style: str, progress_style: List[str], order: str, capture_output: bool, show_slowest: int, show_diff_symbols: bool, dry_run: bool, ): """Run tests.""" progress_styles = [TestProgressStyle(ps) for ps in progress_style] if TestProgressStyle.BAR in progress_styles and test_output_style in { "dots-global", "dots-module", }: raise click.BadOptionUsage( "progress_style", f"The '{TestProgressStyle.BAR}' progress style cannot be used with dots-based test output styles (you asked for '{test_output_style}').", ) init_breakpointhooks(pdb, sys) start_run = default_timer() paths = [Path(p) for p in path] mod_infos = get_info_for_modules(paths, exclude) modules = list(load_modules(mod_infos)) unfiltered_tests = get_tests_in_modules(modules, capture_output) filtered_tests = list( filter_tests( unfiltered_tests, query=search, tag_expr=tags, )) tests = rewrite_assertions_in_tests(filtered_tests) time_to_collect = default_timer() - start_run suite = Suite(tests=tests) test_results = suite.generate_test_runs(order=order, dry_run=dry_run) writer = SimpleTestResultWrite( suite=suite, test_output_style=test_output_style, progress_styles=progress_styles, config_path=config_path, show_diff_symbols=show_diff_symbols, ) writer.output_header(time_to_collect=time_to_collect) results = writer.output_all_test_results(test_results, fail_limit=fail_limit) time_taken = default_timer() - start_run writer.output_test_result_summary(results, time_taken, show_slowest) exit_code = get_exit_code(results) sys.exit(exit_code.value)