diff options
Diffstat (limited to 'tests/integration/compile_pip_requirements')
14 files changed, 174 insertions, 0 deletions
diff --git a/tests/integration/compile_pip_requirements/.bazelignore b/tests/integration/compile_pip_requirements/.bazelignore new file mode 100644 index 0000000..2261bd4 --- /dev/null +++ b/tests/integration/compile_pip_requirements/.bazelignore @@ -0,0 +1,4 @@ +# While normally ignored by default, it must be explicitly +# specified so that compile_pip_requirements_test_from_external_workspace +# properly ignores it +bazel-compile_pip_requirements diff --git a/tests/integration/compile_pip_requirements/.bazelrc b/tests/integration/compile_pip_requirements/.bazelrc new file mode 100644 index 0000000..f23315a --- /dev/null +++ b/tests/integration/compile_pip_requirements/.bazelrc @@ -0,0 +1,5 @@ +test --test_output=errors + +# Windows requires these for multi-python support: +build --enable_runfiles +startup --windows_enable_symlinks diff --git a/tests/integration/compile_pip_requirements/.gitignore b/tests/integration/compile_pip_requirements/.gitignore new file mode 100644 index 0000000..ac51a05 --- /dev/null +++ b/tests/integration/compile_pip_requirements/.gitignore @@ -0,0 +1 @@ +bazel-* diff --git a/tests/integration/compile_pip_requirements/BUILD.bazel b/tests/integration/compile_pip_requirements/BUILD.bazel new file mode 100644 index 0000000..6df46b8 --- /dev/null +++ b/tests/integration/compile_pip_requirements/BUILD.bazel @@ -0,0 +1,67 @@ +load("@rules_python//python:pip.bzl", "compile_pip_requirements") + +genrule( + name = "generate_requirements_extra_in", + srcs = [], + outs = ["requirements_extra.in"], + cmd = "echo 'setuptools~=65.6.3' > $@", +) + +genrule( + name = "generate_requirements_in", + srcs = [], + outs = ["requirements.in"], + cmd = """ +cat > $@ <<EOF +-r requirements_extra.in +pip~=22.3.1 +EOF +""", +) + +compile_pip_requirements( + name = "requirements", + src = "requirements.txt", + data = [ + "requirements.in", + "requirements_extra.in", + ], + requirements_txt = "requirements_lock.txt", +) + +compile_pip_requirements( + name = "requirements_nohashes", + src = "requirements.txt", + data = [ + "requirements.in", + "requirements_extra.in", + ], + generate_hashes = False, + requirements_txt = "requirements_nohashes_lock.txt", +) + +genrule( + name = "generate_os_specific_requirements_in", + srcs = [], + outs = ["requirements_os_specific.in"], + cmd = """ +cat > $@ <<EOF +pip==22.3.0 ; sys_platform == "linux" +pip==22.2.2 ; sys_platform == "darwin" +pip==22.2.1 ; sys_platform == "win32" +EOF +""", +) + +compile_pip_requirements( + name = "os_specific_requirements", + src = "requirements_os_specific.in", + data = [ + "requirements_extra.in", + "requirements_os_specific.in", + ], + requirements_darwin = "requirements_lock_darwin.txt", + requirements_linux = "requirements_lock_linux.txt", + requirements_txt = "requirements_lock.txt", + requirements_windows = "requirements_lock_windows.txt", +) diff --git a/tests/integration/compile_pip_requirements/MODULE.bazel b/tests/integration/compile_pip_requirements/MODULE.bazel new file mode 100644 index 0000000..a3f3d47 --- /dev/null +++ b/tests/integration/compile_pip_requirements/MODULE.bazel @@ -0,0 +1,12 @@ +module(name = "compile_pip_requirements") + +bazel_dep(name = "rules_python", version = "0.0.0") +local_path_override( + module_name = "rules_python", + path = "../../..", +) + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain( + python_version = "3.9", +) diff --git a/tests/integration/compile_pip_requirements/README.md b/tests/integration/compile_pip_requirements/README.md new file mode 100644 index 0000000..3777624 --- /dev/null +++ b/tests/integration/compile_pip_requirements/README.md @@ -0,0 +1,3 @@ +# compile_pip_requirements + +This test ensures that generated requirements.in can be used by compile_pip_requirements. diff --git a/tests/integration/compile_pip_requirements/WORKSPACE b/tests/integration/compile_pip_requirements/WORKSPACE new file mode 100644 index 0000000..5a2204b --- /dev/null +++ b/tests/integration/compile_pip_requirements/WORKSPACE @@ -0,0 +1,17 @@ +local_repository( + name = "rules_python", + path = "../../..", +) + +load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") + +py_repositories() + +load("@rules_python//python/pip_install:repositories.bzl", "pip_install_dependencies") + +pip_install_dependencies() + +python_register_toolchains( + name = "python39", + python_version = "3.9", +) diff --git a/tests/integration/compile_pip_requirements/WORKSPACE.bzlmod b/tests/integration/compile_pip_requirements/WORKSPACE.bzlmod new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/integration/compile_pip_requirements/WORKSPACE.bzlmod diff --git a/tests/integration/compile_pip_requirements/requirements.txt b/tests/integration/compile_pip_requirements/requirements.txt new file mode 100644 index 0000000..4826399 --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements.txt @@ -0,0 +1 @@ +-r requirements.in diff --git a/tests/integration/compile_pip_requirements/requirements_lock.txt b/tests/integration/compile_pip_requirements/requirements_lock.txt new file mode 100644 index 0000000..5ce7d3b --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements_lock.txt @@ -0,0 +1,16 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# bazel run //:requirements.update +# + +# The following packages are considered to be unsafe in a requirements file: +pip==22.3.1 \ + --hash=sha256:65fd48317359f3af8e593943e6ae1506b66325085ea64b706a998c6e83eeaf38 \ + --hash=sha256:908c78e6bc29b676ede1c4d57981d490cb892eb45cd8c214ab6298125119e077 + # via -r requirements.in +setuptools==65.6.3 \ + --hash=sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54 \ + --hash=sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75 + # via -r requirements_extra.in diff --git a/tests/integration/compile_pip_requirements/requirements_lock_darwin.txt b/tests/integration/compile_pip_requirements/requirements_lock_darwin.txt new file mode 100644 index 0000000..0428dc0 --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements_lock_darwin.txt @@ -0,0 +1,12 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# bazel run //:os_specific_requirements.update +# + +# The following packages are considered to be unsafe in a requirements file: +pip==22.2.2 ; sys_platform == "darwin" \ + --hash=sha256:3fd1929db052f056d7a998439176d3333fa1b3f6c1ad881de1885c0717608a4b \ + --hash=sha256:b61a374b5bc40a6e982426aede40c9b5a08ff20e640f5b56977f4f91fed1e39a + # via -r requirements_os_specific.in diff --git a/tests/integration/compile_pip_requirements/requirements_lock_linux.txt b/tests/integration/compile_pip_requirements/requirements_lock_linux.txt new file mode 100644 index 0000000..37c4d49 --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements_lock_linux.txt @@ -0,0 +1,12 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# bazel run //:os_specific_requirements.update +# + +# The following packages are considered to be unsafe in a requirements file: +pip==22.3 ; sys_platform == "linux" \ + --hash=sha256:1daab4b8d3b97d1d763caeb01a4640a2250a0ea899e257b1e44b9eded91e15ab \ + --hash=sha256:8182aec21dad6c0a49a2a3d121a87cd524b950e0b6092b181625f07ebdde7530 + # via -r requirements_os_specific.in diff --git a/tests/integration/compile_pip_requirements/requirements_lock_windows.txt b/tests/integration/compile_pip_requirements/requirements_lock_windows.txt new file mode 100644 index 0000000..5f8e0fa --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements_lock_windows.txt @@ -0,0 +1,12 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# bazel run //:os_specific_requirements.update +# + +# The following packages are considered to be unsafe in a requirements file: +pip==22.2.1 ; sys_platform == "win32" \ + --hash=sha256:0bbbc87dfbe6eed217beff0021f8b7dea04c8f4a0baa9d31dc4cff281ffc5b2b \ + --hash=sha256:50516e47a2b79e77446f0d05649f0d53772c192571486236b1905492bfc24bac + # via -r requirements_os_specific.in diff --git a/tests/integration/compile_pip_requirements/requirements_nohashes_lock.txt b/tests/integration/compile_pip_requirements/requirements_nohashes_lock.txt new file mode 100644 index 0000000..f6f0d86 --- /dev/null +++ b/tests/integration/compile_pip_requirements/requirements_nohashes_lock.txt @@ -0,0 +1,12 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# bazel run //:requirements_nohashes.update +# + +# The following packages are considered to be unsafe in a requirements file: +pip==22.3.1 + # via -r requirements.in +setuptools==65.6.3 + # via -r requirements_extra.in |