Don't delete wheels from external repos with pip_parse (#458)

diff --git a/python/pip_install/extract_wheels/lib/bazel.py b/python/pip_install/extract_wheels/lib/bazel.py
index 95e8553..9638f87 100644
--- a/python/pip_install/extract_wheels/lib/bazel.py
+++ b/python/pip_install/extract_wheels/lib/bazel.py
@@ -248,6 +248,7 @@
         )
         build_file.write(contents)
 
-    os.remove(whl.path)
+    if not incremental:
+        os.remove(whl.path)
 
     return "//%s" % directory
diff --git a/python/pip_install/extract_wheels/lib/whl_filegroup_test.py b/python/pip_install/extract_wheels/lib/whl_filegroup_test.py
index 1209456..84054b1 100644
--- a/python/pip_install/extract_wheels/lib/whl_filegroup_test.py
+++ b/python/pip_install/extract_wheels/lib/whl_filegroup_test.py
@@ -1,26 +1,52 @@
 import os
+import shutil
+import tempfile
+from typing import Optional
 import unittest
 
 from python.pip_install.extract_wheels.lib import bazel
 
 
-class TestExtractWheel(unittest.TestCase):
-    def test_generated_build_file_has_filegroup_target(self) -> None:
-        wheel_name = "example_minimal_package-0.0.1-py3-none-any.whl"
-        wheel_dir = "examples/wheel/"
-        wheel_path = wheel_dir + wheel_name
+class TestWhlFilegroup(unittest.TestCase):
+    def setUp(self) -> None:
+        self.wheel_name = "example_minimal_package-0.0.1-py3-none-any.whl"
+        self.wheel_dir = tempfile.mkdtemp()
+        self.wheel_path = os.path.join(self.wheel_dir, self.wheel_name)
+        shutil.copy(
+            os.path.join("examples", "wheel", self.wheel_name), self.wheel_dir
+        )
+        self.original_dir = os.getcwd()
+        os.chdir(self.wheel_dir)
+
+    def tearDown(self):
+        shutil.rmtree(self.wheel_dir)
+        os.chdir(self.original_dir)
+
+    def _run(
+        self,
+        incremental: bool = False,
+        incremental_repo_prefix: Optional[str] = None,
+    ) -> None:
         generated_bazel_dir = bazel.extract_wheel(
-            wheel_path,
+            self.wheel_path,
             extras={},
             pip_data_exclude=[],
             enable_implicit_namespace_pkgs=False,
+            incremental=incremental,
+            incremental_repo_prefix=incremental_repo_prefix
         )[2:]  # Take off the leading // from the returned label.
         # Assert that the raw wheel ends up in the package.
-        self.assertIn(wheel_name, os.listdir(generated_bazel_dir))
+        self.assertIn(self.wheel_name, os.listdir(generated_bazel_dir))
         with open("{}/BUILD.bazel".format(generated_bazel_dir)) as build_file:
             build_file_content = build_file.read()
             self.assertIn('filegroup', build_file_content)
 
+    def test_nonincremental(self) -> None:
+        self._run()
+
+    def test_incremental(self) -> None:
+        self._run(incremental=True, incremental_repo_prefix="test")
+
 
 if __name__ == "__main__":
     unittest.main()