aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/py/bazel/py_test.py
diff options
context:
space:
mode:
authorGravatar Mouad Benchchaoui <mbenchchaoui@newstore.com>2018-02-14 05:09:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-14 05:10:36 -0800
commit0f9c6ea574918dda094cf5423fa3822112846c30 (patch)
tree52b1deea8f09ef9ed23fd68589a227f8f14c412f /src/test/py/bazel/py_test.py
parentb4545ba2b1aa4079b09a346a6d441ffa1e1b7d20 (diff)
Make __init__.py files creation optional
Introduce a new attribute to py_binary and py_test to control whether to create `__init__.py` or not. Fixes https://github.com/bazelbuild/rules_python/issues/55 Closes #4470. PiperOrigin-RevId: 185672243
Diffstat (limited to 'src/test/py/bazel/py_test.py')
-rw-r--r--src/test/py/bazel/py_test.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/py/bazel/py_test.py b/src/test/py/bazel/py_test.py
index 26fe88a0d6..3d97e79105 100644
--- a/src/test/py/bazel/py_test.py
+++ b/src/test/py/bazel/py_test.py
@@ -65,5 +65,46 @@ class PyTest(test_base.TestBase):
.endswith('/a/b.py'))
+class TestInitPyFiles(test_base.TestBase):
+
+ def createSimpleFiles(self, create_init=True):
+ self.ScratchFile('WORKSPACE')
+
+ self.ScratchFile('src/a/BUILD', [
+ 'py_binary(name="a", srcs=["a.py"], deps=[":b"], legacy_create_init=%s)'
+ % create_init,
+ 'py_library(name="b", srcs=["b.py"])',
+ ])
+
+ self.ScratchFile('src/a/a.py', [
+ 'from src.a import b',
+ 'b.Hello()',
+ ])
+
+ self.ScratchFile('src/a/b.py', [
+ 'def Hello():',
+ ' print("Hello, World")',
+ ])
+
+ def testInitPyFilesCreated(self):
+ self.createSimpleFiles()
+ exit_code, _, stderr = self.RunBazel(['build', '//src/a:a'])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertTrue(
+ os.path.exists('bazel-bin/src/a/a.runfiles/__main__/src/__init__.py'))
+ self.assertTrue(
+ os.path.exists('bazel-bin/src/a/a.runfiles/__main__/src/a/__init__.py'))
+
+
+def testInitPyFilesNotCreatedWhenLegacyCreateInitIsSet(self):
+ self.createSimpleFiles(create_init=False)
+ exit_code, _, stderr = self.RunBazel(['build', '//src/a:a'])
+ self.AssertExitCode(exit_code, 0, stderr)
+ self.assertFalse(
+ os.path.exists('bazel-bin/src/a/a.runfiles/__main__/src/__init__.py'))
+ self.assertFalse(
+ os.path.exists('bazel-bin/src/a/a.runfiles/__main__/src/a/__init__.py'))
+
+
if __name__ == '__main__':
unittest.main()