diff options
author | Vinh Tran <vinhdaitran@google.com> | 2023-07-26 05:30:40 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-07-26 05:30:40 +0000 |
commit | 5c7cc0dce1331e9a2fcc166a80f4fab2c90ac590 (patch) | |
tree | acdcc148cabfb6f8242a6c83e37625eeaea4e628 /examples/bzlmod/test.py | |
parent | 62c90a8ca6aa21d4e60cfe32b3784609d80480f6 (diff) | |
parent | 3e21f23d9400ba51f10e9b76016ff6d472829b4e (diff) | |
download | bazelbuild-rules_python-5c7cc0dce1331e9a2fcc166a80f4fab2c90ac590.tar.gz |
Merge remote-tracking branch 'aosp/upstream-main' into main am: b14b3520de am: e398bc2bf7 am: a1ccc8dd9e am: f26ff44a64 am: 3e21f23d94android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android-14.0.0_r28android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Original change: https://android-review.googlesource.com/c/platform/external/bazelbuild-rules_python/+/2673976
Change-Id: Ib33cbb9758fb3c0287c21cf502885fec2f072343
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'examples/bzlmod/test.py')
-rw-r--r-- | examples/bzlmod/test.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/examples/bzlmod/test.py b/examples/bzlmod/test.py new file mode 100644 index 0000000..80cd027 --- /dev/null +++ b/examples/bzlmod/test.py @@ -0,0 +1,90 @@ +# Copyright 2023 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 pathlib +import sys +import unittest + +from lib import main + + +class ExampleTest(unittest.TestCase): + def test_coverage_doesnt_shadow_stdlib(self): + # When we try to import the html module + import html as html_stdlib + + try: + import coverage.html as html_coverage + except ImportError: + self.skipTest("not running under coverage, skipping") + + self.assertEqual( + "html", + f"{html_stdlib.__name__}", + "'html' from stdlib was not loaded correctly", + ) + + self.assertEqual( + "coverage.html", + f"{html_coverage.__name__}", + "'coverage.html' was not loaded correctly", + ) + + self.assertNotEqual( + html_stdlib, + html_coverage, + "'html' import should not be shadowed by coverage", + ) + + def test_coverage_sys_path(self): + all_paths = ",\n ".join(sys.path) + + for i, path in enumerate(sys.path[1:-2]): + self.assertFalse( + "/coverage" in path, + f"Expected {i + 2}th '{path}' to not contain 'coverage.py' paths, " + f"sys.path has {len(sys.path)} items:\n {all_paths}", + ) + + first_item, last_item = sys.path[0], sys.path[-1] + self.assertFalse( + first_item.endswith("coverage"), + f"Expected the first item in sys.path '{first_item}' to not be related to coverage", + ) + if os.environ.get("COVERAGE_MANIFEST"): + # we are running under the 'bazel coverage :test' + self.assertTrue( + "_coverage" in last_item, + f"Expected {last_item} to be related to coverage", + ) + self.assertEqual(pathlib.Path(last_item).name, "coverage") + else: + self.assertFalse( + "coverage" in last_item, f"Expected coverage tooling to not be present" + ) + + def test_main(self): + self.assertEquals( + """\ +- - +A 1 +B 2 +- -""", + main([["A", 1], ["B", 2]]), + ) + + +if __name__ == "__main__": + unittest.main() |