diff options
author | lberki <lberki@google.com> | 2018-01-30 09:00:57 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-30 09:02:41 -0800 |
commit | bb9f19d4d819a751fbfbe11b2a7827c05680944d (patch) | |
tree | 122f9c461fd7ae816f83dea2b461dc600ceb2e5f | |
parent | 9e344ec089f3f46ac6d4cdf2638b671242f87631 (diff) |
Add a simple Python integration test written in Python.
RELNOTES: None.
PiperOrigin-RevId: 183839976
-rw-r--r-- | src/test/py/bazel/BUILD | 7 | ||||
-rw-r--r-- | src/test/py/bazel/py_test.py | 69 |
2 files changed, 76 insertions, 0 deletions
diff --git a/src/test/py/bazel/BUILD b/src/test/py/bazel/BUILD index ad1d726f79..c7715f7c1f 100644 --- a/src/test/py/bazel/BUILD +++ b/src/test/py/bazel/BUILD @@ -39,6 +39,13 @@ py_test( ) py_test( + name = "py_test", + size = "medium", + srcs = ["py_test.py"], + deps = [":test_base"], +) + +py_test( name = "bazel_server_mode_test", size = "medium", srcs = ["bazel_server_mode_test.py"], diff --git a/src/test/py/bazel/py_test.py b/src/test/py/bazel/py_test.py new file mode 100644 index 0000000000..40025be7d6 --- /dev/null +++ b/src/test/py/bazel/py_test.py @@ -0,0 +1,69 @@ +# Copyright 2018 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import unittest +from src.test.py.bazel import test_base + + +class PyTest(test_base.TestBase): + """Integration tests for the Python rules of Bazel.""" + + def createSimpleFiles(self): + self.ScratchFile('WORKSPACE') + + self.ScratchFile( + 'a/BUILD', + [ + 'py_binary(name="a", srcs=["a.py"], deps=[":b"])', + 'py_library(name="b", srcs=["b.py"])', + ]) + + self.ScratchFile( + 'a/a.py', + [ + 'import b', + 'b.Hello()', + ]) + + self.ScratchFile( + 'a/b.py', + [ + 'def Hello():', + ' print "Hello, World"', + ]) + + def testSmoke(self): + self.createSimpleFiles() + exit_code, stdout, stderr = self.RunBazel(['run', '//a:a']) + self.AssertExitCode(exit_code, 0, stderr) + self.assertTrue('Hello, World' in stdout) + + def testRunfilesSymlinks(self): + if test_base.TestBase.IsWindows(): + # No runfiles symlinks on Windows + return + + self.createSimpleFiles() + exit_code, _, stderr = self.RunBazel(['build', '//a:a']) + self.AssertExitCode(exit_code, 0, stderr) + self.assertTrue(os.path.isdir('bazel-bin/a/a.runfiles')) + self.assertTrue(os.readlink('bazel-bin/a/a.runfiles/__main__/a/a.py') + .endswith('/a/a.py')) + self.assertTrue(os.readlink('bazel-bin/a/a.runfiles/__main__/a/b.py') + .endswith('/a/b.py')) + + +if __name__ == '__main__': + unittest.main() |