def rules(): return [ # goals *check.rules(), *export.rules(), *fmt.rules(), *lint.rules(), *update_build_files.rules(), *package.rules(), *publish.rules(), *repl.rules(), *run.rules(), *tailor.rules(), *test.rules(), # util_rules *anonymous_telemetry.rules(), *archive.rules(), *config_files.rules(), *python_binaries.rules(), *distdir.rules(), *external_tool.rules(), *pants_bin.rules(), *source_files.rules(), *source_root.rules(), *stats_aggregator.rules(), *stripped_source_files.rules(), *subprocess_environment.rules(), *target_type_rules(), ]
def rules(): return [ # goals *fmt.rules(), *lint.rules(), *package.rules(), *repl.rules(), *run.rules(), *test.rules(), *typecheck.rules(), *tailor.rules(), # util_rules *config_files.rules(), *distdir.rules(), *filter_empty_sources.rules(), *pants_bin.rules(), *source_files.rules(), *stripped_source_files.rules(), *archive.rules(), *external_tool.rules(), *subprocess_environment.rules(), *source_root.rules(), *target_type_rules(), *anonymous_telemetry.rules(), *stats_aggregator.rules(), ]
def rules(): return [ # project_info *cloc.rules(), *filedeps.rules(), *list_backends.rules(), *list_roots.rules(), *list_target_types.rules(), *list_targets.rules(), *list_targets_old.rules(), # goals *binary.rules(), *fmt.rules(), *lint.rules(), *repl.rules(), *run.rules(), *test.rules(), # util_rules *determine_source_files.rules(), *distdir.rules(), *filter_empty_sources.rules(), *strip_source_roots.rules(), # other *target_rules(), ]
def rules(): return [ # goals *binary.rules(), *fmt.rules(), *lint.rules(), *repl.rules(), *run.rules(), *test.rules(), # util_rules *determine_source_files.rules(), *distdir.rules(), *filter_empty_sources.rules(), *strip_source_roots.rules(), *archive.rules(), *external_tool.rules(), ]
def rules(): return [ # goals *binary.rules(), *fmt.rules(), *lint.rules(), *repl.rules(), *run.rules(), *test.rules(), *typecheck.rules(), # util_rules *distdir.rules(), *filter_empty_sources.rules(), *pants_bin.rules(), *source_files.rules(), *stripped_source_files.rules(), *archive.rules(), *external_tool.rules(), *source_root.rules(), ]
def test_url_assets(asset_type) -> None: rule_runner = RuleRunner( rules=[ *target_type_rules(), *pex_from_targets.rules(), *package_pex_binary.rules(), *run_pex_binary.rules(), *python_target_type_rules.rules(), *run.rules(), ], target_types=[ FileTarget, ResourceTarget, PythonSourceTarget, PexBinary ], objects={"http_source": HTTPSource}, ) http_source_info = ( 'url="https://raw.githubusercontent.com/python/cpython/7e46ae33bd522cf8331052c3c8835f9366599d8d/Lib/antigravity.py",' "len=500," 'sha256="8a5ee63e1b79ba2733e7ff4290b6eefea60e7f3a1ccb6bb519535aaf92b44967"' ) rule_runner.write_files({ "assets/BUILD": dedent(f"""\ {asset_type}( name='antigravity', source=http_source( {http_source_info}, ), ) {asset_type}( name='antigravity_renamed', source=http_source( {http_source_info}, filename="antigravity_renamed.py", ), ) """), "app/app.py": textwrap.dedent("""\ import pathlib assets_path = pathlib.Path(__file__).parent.parent / "assets" for path in assets_path.iterdir(): print(path.name) assert "https://xkcd.com/353/" in path.read_text() """), "app/BUILD": textwrap.dedent("""\ python_source( source="app.py", dependencies=[ "assets:antigravity", "assets:antigravity_renamed", ] ) pex_binary(name="app.py", entry_point='app.py') """), }) with mock_console(rule_runner.options_bootstrapper) as (console, stdout_reader): rule_runner.run_goal_rule( run.Run, args=["app/app.py"], env_inherit={"PATH", "PYENV_ROOT", "HOME"}, ) stdout = stdout_reader.get_stdout() assert "antigravity.py" in stdout assert "antigravity_renamed.py" in stdout