diff options
author | Mouad Benchchaoui <mbenchchaoui@newstore.com> | 2018-02-14 05:09:15 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-14 05:10:36 -0800 |
commit | 0f9c6ea574918dda094cf5423fa3822112846c30 (patch) | |
tree | 52b1deea8f09ef9ed23fd68589a227f8f14c412f /src/test/py/bazel/py_test.py | |
parent | b4545ba2b1aa4079b09a346a6d441ffa1e1b7d20 (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.py | 41 |
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() |