|
1 | 1 | import os
|
| 2 | +import shutil |
| 3 | +import tempfile |
| 4 | +from typing import Optional |
2 | 5 | import unittest
|
3 | 6 |
|
4 | 7 | from python.pip_install.extract_wheels.lib import bazel
|
5 | 8 |
|
6 | 9 |
|
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: |
12 | 30 | generated_bazel_dir = bazel.extract_wheel(
|
13 |
| - wheel_path, |
| 31 | + self.wheel_path, |
14 | 32 | extras={},
|
15 | 33 | pip_data_exclude=[],
|
16 | 34 | enable_implicit_namespace_pkgs=False,
|
| 35 | + incremental=incremental, |
| 36 | + incremental_repo_prefix=incremental_repo_prefix |
17 | 37 | )[2:] # Take off the leading // from the returned label.
|
18 | 38 | # 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)) |
20 | 40 | with open("{}/BUILD.bazel".format(generated_bazel_dir)) as build_file:
|
21 | 41 | build_file_content = build_file.read()
|
22 | 42 | self.assertIn('filegroup', build_file_content)
|
23 | 43 |
|
| 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 | + |
24 | 50 |
|
25 | 51 | if __name__ == "__main__":
|
26 | 52 | unittest.main()
|
0 commit comments