Пример #1
0
def run_fmt_rule(
    rule_runner: RuleRunner,
    *,
    language_target_collection_types: List[Type[LanguageFmtTargets]],
    targets: List[Target],
    result_digest: Digest,
    per_file_caching: bool,
    include_sources: bool = True,
) -> str:
    with mock_console(rule_runner.options_bootstrapper) as (console,
                                                            stdio_reader):
        union_membership = UnionMembership(
            {LanguageFmtTargets: language_target_collection_types})
        result: Fmt = run_rule_with_mocks(
            fmt,
            rule_args=[
                console,
                Targets(targets),
                create_goal_subsystem(FmtSubsystem,
                                      per_file_caching=per_file_caching,
                                      per_target_caching=False),
                Workspace(rule_runner.scheduler),
                union_membership,
            ],
            mock_gets=[
                MockGet(
                    output_type=LanguageFmtResults,
                    input_type=LanguageFmtTargets,
                    mock=lambda language_targets_collection:
                    language_targets_collection.language_fmt_results(
                        result_digest),
                ),
                MockGet(
                    output_type=TargetsWithSources,
                    input_type=TargetsWithSourcesRequest,
                    mock=lambda tgts: TargetsWithSources(
                        tgts if include_sources else ()),
                ),
                MockGet(
                    output_type=Digest,
                    input_type=MergeDigests,
                    mock=lambda _: result_digest,
                ),
            ],
            union_membership=union_membership,
        )
        assert result.exit_code == 0
        assert not stdio_reader.get_stdout()
        return stdio_reader.get_stderr()
Пример #2
0
 def run_fmt_rule(
     self,
     *,
     language_target_collection_types: List[Type[LanguageFmtTargets]],
     targets: List[Target],
     result_digest: Digest,
     per_file_caching: bool,
     include_sources: bool = True,
 ) -> str:
     console = MockConsole(use_colors=False)
     union_membership = UnionMembership(
         {LanguageFmtTargets: language_target_collection_types})
     result: Fmt = run_rule(
         fmt,
         rule_args=[
             console,
             Targets(targets),
             create_goal_subsystem(FmtSubsystem,
                                   per_file_caching=per_file_caching,
                                   per_target_caching=False),
             Workspace(self.scheduler),
             union_membership,
         ],
         mock_gets=[
             MockGet(
                 product_type=LanguageFmtResults,
                 subject_type=LanguageFmtTargets,
                 mock=lambda language_targets_collection:
                 language_targets_collection.language_fmt_results(
                     result_digest),
             ),
             MockGet(
                 product_type=TargetsWithSources,
                 subject_type=TargetsWithSourcesRequest,
                 mock=lambda tgts: TargetsWithSources(
                     tgts if include_sources else ()),
             ),
             MockGet(
                 product_type=Digest,
                 subject_type=MergeDigests,
                 mock=lambda _: result_digest,
             ),
         ],
         union_membership=union_membership,
     )
     assert result.exit_code == 0
     assert not console.stdout.getvalue()
     return cast(str, console.stderr.getvalue())