8000 Don't delete wheels from external repos with pip_parse (#458) · lapointexavier/rules_python@017eb4f · GitHub
[go: up one dir, main page]

Skip to content

Commit 017eb4f

Browse files
authored
Don't delete wheels from external repos with pip_parse (bazel-contrib#458)
1 parent 04c6d7f commit 017eb4f

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

python/pip_install/extract_wheels/lib/bazel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ def extract_wheel(
248248
)
249249
build_file.write(contents)
250250

251-
os.remove(whl.path)
251+
if not incremental:
252+
os.remove(whl.path)
252253

253254
return "//%s" % directory
Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,52 @@
11
import os
2+
import shutil
3+
import tempfile
4+
from typing import Optional
25
import unittest
36

47
from python.pip_install.extract_wheels.lib import bazel
58

69

7-
class TestExtractWheel(unittest.TestCase):
8-
def test_generated_build_file_has_filegroup_target(self) -> None:
9-
wheel_name = "example_minimal_package-0.0.1-py3-none-any.whl"
10-
wheel_dir = "examples/wheel/"
11-
wheel_path = wheel_dir + wheel_name
10+
class TestWhlFilegroup(unittest.TestCase):
11+
def setUp(self) -> None:
12+
self.wheel_name = "example_minimal_package-0.0.1-py3-none-any.whl"
13+
self.wheel_dir = tempfile.mkdtemp()
14+
self.wheel_path = os.path.join(self.wheel_dir, self.wheel_name)
15+
shutil.copy(
16+
os.path.join("examples", "wheel", self.wheel_name), self.wheel_dir
17+
)
18+
self.original_dir = os.getcwd()
19+
os.chdir(self.wheel_dir)
20+
21+
def tearDown(self):
22+
shutil.rmtree(self.wheel_dir)
23+
os.chdir(self.original_dir)
24+
25+
def _run(
26+
self,
27+
incremental: bool = False,
28+
incremental_repo_prefix: Optional[str] = None,
29+
) -> None:
1230
generated_bazel_dir = bazel.extract_wheel(
13-
wheel_path,
31+
self.wheel_path,
1432
extras={},
1533
pip_data_exclude=[],
1634
enable_implicit_namespace_pkgs=False,
35+
incremental=incremental,
36+
incremental_repo_prefix=incremental_repo_prefix
1737
)[2:] # Take off the leading // from the returned label.
1838
# Assert that the raw wheel ends up in the package.
19-
self.assertIn(wheel_name, os.listdir(generated_bazel_dir))
39+
self.assertIn(self.wheel_name, os.listdir(generated_bazel_dir))
2040
with open("{}/BUILD.bazel".format(generated_bazel_dir)) as build_file:
2141
build_file_content = build_file.read()
2242
self.assertIn('filegroup', build_file_content)
2343

44+
def test_nonincremental(self) -> None:
45+
self._run()
46+
47+
def test_incremental(self) -> None:
48+
self._run(incremental=True, incremental_repo_prefix="test")
49+
2450

2551
if __name__ == "__main__":
2652
unittest.main()

0 commit comments

Comments
 (0)
0