def output_fixtures( fixtures: List[Fixture], tests: List[Test], show_scopes: bool, show_docstrings: bool, show_dependencies: bool, show_dependency_trees: bool, ): generated_tests = itertools.chain.from_iterable( test.get_parameterised_instances() for test in tests ) fixture_to_tests = fixtures_used_directly_by_tests(generated_tests) fixtures_to_parents, fixtures_to_children = fixture_parents_and_children(fixtures) for module, fixtures in group_by(fixtures, key=lambda f: f.module_name).items(): rich_console.print(Rule(Text(module, style="title"))) for fixture in fixtures: fixture_tree = make_fixture_information_tree( fixture, used_by_tests=fixture_to_tests[fixture], fixtures_to_children=fixtures_to_children, fixtures_to_parents=fixtures_to_parents, show_scopes=show_scopes, show_docstrings=show_docstrings, show_dependencies=show_dependencies, show_dependency_trees=show_dependency_trees, ) rich_console.print(fixture_tree)
def add_fixture_usages_by_tests_to_tree(node: Tree, used_by: Iterable[Test]) -> None: grouped_used_by = group_by(used_by, key=lambda t: t.description) for description, tests in grouped_used_by.items(): test = tests[0] loc = format_test_location(test) sep = f" [{len(tests)}]" if len(tests) > 1 else "" node.add(f"[muted]{loc}{sep}[/muted] {description}")
def _( items=each(range(5), "echolocation", [-2, 3, 4, -3, 2, 3]), key=each(is_even, is_vowel, square), result=each( {True: [0, 2, 4], False: [1, 3]}, {True: ["e", "o", "o", "a", "i", "o"], False: ["c", "h", "l", "c", "t", "n"]}, {4: [-2, 2], 9: [3, -3, 3], 16: [4]}, ), ): assert group_by(items, key) == result