From 56f6a8023c5f7289f2ef4c0594e94c0fc9d827f6 Mon Sep 17 00:00:00 2001 From: Matt Mackay Date: Fri, 27 May 2022 16:30:23 -0400 Subject: [PATCH] test: import from external non-wheel py_library --- py/tests/external-deps/BUILD.bazel | 33 ++++++++++++++----- py/tests/external-deps/click.py | 9 +++++ py/tests/external-deps/expected | 21 ------------ py/tests/external-deps/expected_click | 1 + py/tests/external-deps/expected_pathing | 21 ++++++++++++ .../external-deps/{__main__.py => pathing.py} | 0 requirements.in | 3 +- requirements.txt | 4 +++ 8 files changed, 62 insertions(+), 30 deletions(-) create mode 100644 py/tests/external-deps/click.py delete mode 100644 py/tests/external-deps/expected create mode 100644 py/tests/external-deps/expected_click create mode 100644 py/tests/external-deps/expected_pathing rename py/tests/external-deps/{__main__.py => pathing.py} (100%) diff --git a/py/tests/external-deps/BUILD.bazel b/py/tests/external-deps/BUILD.bazel index cf50f040..54afebb9 100644 --- a/py/tests/external-deps/BUILD.bazel +++ b/py/tests/external-deps/BUILD.bazel @@ -11,8 +11,8 @@ py_library( ) py_binary( - name = "main", - srcs = ["__main__.py"], + name = "pathing", + srcs = ["pathing.py"], deps = [ ":lib", "@pypi_django//:wheel", @@ -20,20 +20,37 @@ py_binary( ) genrule( - name = "run_main", - outs = ["out"], + name = "run_pathing", + outs = ["pathing_out"], cmd = "|".join([ - "$(execpath main)", + "$(execpath pathing)", """sed "s#$$(pwd)#(pwd)#" """, "sed 's#^.*execroot/aspect_rules_py/external/python_toolchain_%s#(py_toolchain)#'" % host_platform, "sed 's#(main, .*)#(main, REDACTED)#'", - ]) + "> $(execpath out)", - tools = ["main"], + ]) + "> $@", + tools = ["pathing"], +) + +py_binary( + name = "click", + srcs = ["click.py"], + deps = [ + # Referencing the external py_library rule generated by rules_python + "@pypi_click//:pkg", + ], +) + +genrule( + name = "run_click", + outs = ["click_out"], + cmd = "$(execpath click) --count 314 > $@", + tools = ["click"], ) write_source_files( name = "test", files = { - "expected": "out", + "expected_pathing": "pathing_out", + "expected_click": "click_out", }, ) diff --git a/py/tests/external-deps/click.py b/py/tests/external-deps/click.py new file mode 100644 index 00000000..2c148781 --- /dev/null +++ b/py/tests/external-deps/click.py @@ -0,0 +1,9 @@ +import click + +@click.command() +@click.option('--count', default=1) +def cli(count): + click.echo(f"Count = {count}") + +if __name__ == '__main__': + cli() diff --git a/py/tests/external-deps/expected b/py/tests/external-deps/expected deleted file mode 100644 index 5e1ce936..00000000 --- a/py/tests/external-deps/expected +++ /dev/null @@ -1,21 +0,0 @@ -Python: (pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/main.venv/bin/python3 -version: 3.9.10 (main, REDACTED) -[Clang 13.0.1 ] -version info: sys.version_info(major=3, minor=9, micro=10, releaselevel='final', serial=0) -cwd: (pwd) -site-packages folder: ['(pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/main.venv/lib/python3.9/site-packages'] - -sys path: -(py_toolchain)/lib/python39.zip -(py_toolchain)/lib/python3.9 -(py_toolchain)/lib/python3.9/lib-dynload -(pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/main.venv/lib/python3.9/site-packages -(pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/aspect_rules_py/py/tests/external-deps - -Entrypoint Path: (pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/aspect_rules_py/py/tests/external-deps/__main__.py - -Django location: (pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/main.venv/lib/python3.9/site-packages/django/__init__.py -Django version: 4.0.2 - -From lib with wheel dependency: Hello Matt -lib filepath: (pwd)/bazel-out/host/bin/py/tests/external-deps/main.runfiles/aspect_rules_py/py/tests/external-deps/lib.py diff --git a/py/tests/external-deps/expected_click b/py/tests/external-deps/expected_click new file mode 100644 index 00000000..0611747e --- /dev/null +++ b/py/tests/external-deps/expected_click @@ -0,0 +1 @@ +Count = 314 diff --git a/py/tests/external-deps/expected_pathing b/py/tests/external-deps/expected_pathing new file mode 100644 index 00000000..c87ffa58 --- /dev/null +++ b/py/tests/external-deps/expected_pathing @@ -0,0 +1,21 @@ +Python: (pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/pathing.venv/bin/python3 +version: 3.9.10 (main, REDACTED) +[Clang 13.0.1 ] +version info: sys.version_info(major=3, minor=9, micro=10, releaselevel='final', serial=0) +cwd: (pwd) +site-packages folder: ['(pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/pathing.venv/lib/python3.9/site-packages'] + +sys path: +(py_toolchain)/lib/python39.zip +(py_toolchain)/lib/python3.9 +(py_toolchain)/lib/python3.9/lib-dynload +(pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/pathing.venv/lib/python3.9/site-packages +(pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/aspect_rules_py/py/tests/external-deps + +Entrypoint Path: (pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/aspect_rules_py/py/tests/external-deps/pathing.py + +Django location: (pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/pathing.venv/lib/python3.9/site-packages/django/__init__.py +Django version: 4.0.2 + +From lib with wheel dependency: Hello Matt +lib filepath: (pwd)/bazel-out/host/bin/py/tests/external-deps/pathing.runfiles/aspect_rules_py/py/tests/external-deps/lib.py diff --git a/py/tests/external-deps/__main__.py b/py/tests/external-deps/pathing.py similarity index 100% rename from py/tests/external-deps/__main__.py rename to py/tests/external-deps/pathing.py diff --git a/requirements.in b/requirements.in index 5161caf4..d983efba 100644 --- a/requirements.in +++ b/requirements.in @@ -1,2 +1,3 @@ django==4.0.2 -colorama==0.4.4 \ No newline at end of file +colorama==0.4.4 +click \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4959953a..3e3d04be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,10 @@ asgiref==3.5.0 \ --hash=sha256:2f8abc20f7248433085eda803936d98992f1343ddb022065779f37c5da0181d0 \ --hash=sha256:88d59c13d634dcffe0510be048210188edd79aeccb6a6c9028cdad6f31d730a9 # via django +click==8.1.3 \ + --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ + --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 + # via -r requirements.in colorama==0.4.4 \ --hash=sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b \ --hash=sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2