aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilei "Dolee" Yang <yileiyang@google.com>2021-07-19 17:06:15 -0700
committerGitHub <noreply@github.com>2021-07-19 17:06:15 -0700
commitcde7550cb6c01d900ccc27919f375858d6a8e1de (patch)
tree92bda1674509bcb1da5699121c42bfb1798f8003
parent4d8ea27b446c943a10a3e9ec60c9a7a2980508ba (diff)
parent70758a988b3b50f510acc7ef16bcd7d7423ed4c0 (diff)
downloadabsl-py-cde7550cb6c01d900ccc27919f375858d6a8e1de.tar.gz
Merge pull request #172 from yilei/push_up_to_385601086
Push up to 385601086
-rw-r--r--absl/BUILD17
-rw-r--r--absl/CHANGELOG.md5
-rw-r--r--absl/_build_defs.bzl92
-rw-r--r--absl/flags/BUILD62
-rw-r--r--absl/flags/argparse_flags.py27
-rw-r--r--absl/flags/tests/argparse_flags_test.py10
-rw-r--r--absl/logging/BUILD32
-rw-r--r--absl/testing/BUILD83
-rw-r--r--absl/testing/_bazel_selected_py3.py2
-rw-r--r--absl/testing/_bazelize_command.py8
-rw-r--r--absl/testing/tests/parameterized_test.py28
-rw-r--r--absl/third_party/unittest3_backport/BUILD7
12 files changed, 159 insertions, 214 deletions
diff --git a/absl/BUILD b/absl/BUILD
index ed470be..4ccf337 100644
--- a/absl/BUILD
+++ b/absl/BUILD
@@ -1,5 +1,3 @@
-load(":_build_defs.bzl", "py2and3_test", "py2py3_test_binary")
-
licenses(["notice"])
exports_files(["LICENSE"])
@@ -75,23 +73,25 @@ py_library(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/app_test_helper_pure_python",
testonly = 1,
srcs = ["tests/app_test_helper.py"],
main = "tests/app_test_helper.py",
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":app",
"//absl/flags",
],
)
-py2and3_test(
+py_test(
name = "tests/app_test",
srcs = ["tests/app_test.py"],
data = [":tests/app_test_helper_pure_python"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_enum_module",
":app",
@@ -105,10 +105,11 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/command_name_test",
srcs = ["tests/command_name_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":command_name",
"//absl/testing:absltest",
diff --git a/absl/CHANGELOG.md b/absl/CHANGELOG.md
index aff590d..253628f 100644
--- a/absl/CHANGELOG.md
+++ b/absl/CHANGELOG.md
@@ -6,7 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com).
## Unreleased
-Nothing notable unreleased.
+### Fixed
+
+* #171: Creating `argparse_flags.ArgumentParser` with `argument_default=` no
+ longer raises an exception when other `absl.flags` flags are defined.
## 0.13.0 (2021-06-14)
diff --git a/absl/_build_defs.bzl b/absl/_build_defs.bzl
deleted file mode 100644
index 2773609..0000000
--- a/absl/_build_defs.bzl
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 2019 The Abseil Authors.
-#
-# 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.
-
-"""Private helpers for absl build rules."""
-
-def py2py3_test_binary(name, **kwargs):
- """Create the same binary with different python versions for testing.
-
- Given `name`, `${name}_py2` and `${name}_py3` targets are created with
- `python_version` set to `PY2` and `PY3`, respectively. An alias named
- `name` is also created that uses a `select()` between the two underlying
- targets; this makes it easier to reference the binaries in consuming rules.
-
- Args:
- name: base name of the binaries. "_py2" and "_py3" suffixed targets
- will be created from it.
- **kwargs: additional args to pass onto py_binary.
- """
- kwargs["testonly"] = 1
- kwargs["srcs_version"] = "PY2AND3"
- if not kwargs.get("main"):
- if len(kwargs.get("srcs", [])) != 1:
- fail("py2py3_test_binary requires main or len(srcs)==1")
- kwargs["main"] = kwargs["srcs"][0]
- kwargs.setdefault("tags", []).append("py3-compatible")
-
- native.alias(name = name, actual = select({
- "//absl:py3_mode": name + "_py3",
- "//absl:py2_mode": name + "_py2",
- }))
-
- native.py_binary(
- name = name + "_py2",
- python_version = "PY2",
- **kwargs
- )
- native.py_binary(
- name = name + "_py3",
- python_version = "PY3",
- **kwargs
- )
-
-def py2and3_test(name, **kwargs):
- """A version of py_test that tests both Python 2 and 3.
-
- Args:
- name: name of the test suite. Individual ".python2" and ".python3"
- suffixed py_tests will be created from it.
- **kwargs: additional args to pass onto py_test.
- """
- python2 = name + ".python2"
- python3 = name + ".python3"
- main = kwargs.pop("main", name + ".py")
- base_tags = kwargs.pop("tags", [])
-
- native.py_test(
- name = python2,
- python_version = "PY2",
- main = main,
- tags = base_tags + ["python2"],
- **kwargs
- )
-
- native.py_test(
- name = python3,
- python_version = "PY3",
- main = main,
- tags = base_tags + ["python3"],
- **kwargs
- )
-
- suite_kwargs = {}
- if kwargs.get("visibility"):
- suite_kwargs["visibility"] = kwargs.get("visibility")
-
- native.test_suite(
- name = name,
- tags = base_tags,
- tests = [python2, python3],
- **suite_kwargs
- )
diff --git a/absl/flags/BUILD b/absl/flags/BUILD
index 340ae93..1de1d6f 100644
--- a/absl/flags/BUILD
+++ b/absl/flags/BUILD
@@ -1,5 +1,3 @@
-load("//absl:_build_defs.bzl", "py2and3_test", "py2py3_test_binary")
-
licenses(["notice"]) # Apache 2.0
exports_files(["LICENSE"])
@@ -119,10 +117,11 @@ py_library(
],
)
-py2and3_test(
+py_test(
name = "tests/_argument_parser_test",
srcs = ["tests/_argument_parser_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_argument_parser",
"//absl:_enum_module",
@@ -132,10 +131,11 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/_flag_test",
srcs = ["tests/_flag_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_argument_parser",
":_exceptions",
@@ -146,11 +146,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/_flagvalues_test",
size = "small",
srcs = ["tests/_flagvalues_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_defines",
":_exceptions",
@@ -165,11 +166,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/_helpers_test",
size = "small",
srcs = ["tests/_helpers_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_helpers",
":tests/module_bar",
@@ -178,11 +180,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/_validators_test",
size = "small",
srcs = ["tests/_validators_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_defines",
":_exceptions",
@@ -192,12 +195,13 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/argparse_flags_test",
size = "small",
srcs = ["tests/argparse_flags_test.py"],
data = [":tests/argparse_flags_test_helper"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":argparse_flags",
":flags",
@@ -210,11 +214,12 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/argparse_flags_test_helper",
testonly = 1,
srcs = ["tests/argparse_flags_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":argparse_flags",
":flags",
@@ -222,11 +227,12 @@ py2py3_test_binary(
],
)
-py2and3_test(
+py_test(
name = "tests/flags_formatting_test",
size = "small",
srcs = ["tests/flags_formatting_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_helpers",
":flags",
@@ -234,11 +240,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/flags_helpxml_test",
size = "small",
srcs = ["tests/flags_helpxml_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_helpers",
":flags",
@@ -249,11 +256,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/flags_numeric_bounds_test",
size = "small",
srcs = ["tests/flags_numeric_bounds_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_validators",
":flags",
@@ -262,11 +270,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/flags_test",
size = "small",
srcs = ["tests/flags_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_exceptions",
":_helpers",
@@ -280,11 +289,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/flags_unicode_literals_test",
size = "small",
srcs = ["tests/flags_unicode_literals_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":flags",
"//absl/testing:absltest",
diff --git a/absl/flags/argparse_flags.py b/absl/flags/argparse_flags.py
index ea4cdfa..4f78f50 100644
--- a/absl/flags/argparse_flags.py
+++ b/absl/flags/argparse_flags.py
@@ -148,7 +148,8 @@ class ArgumentParser(argparse.ArgumentParser):
default=argparse.SUPPRESS, help='show full help message and exit')
if self._inherited_absl_flags:
- self.add_argument('--undefok', help=argparse.SUPPRESS)
+ self.add_argument(
+ '--undefok', default=argparse.SUPPRESS, help=argparse.SUPPRESS)
self._define_absl_flags(self._inherited_absl_flags)
def parse_known_args(self, args=None, namespace=None):
@@ -237,7 +238,14 @@ class ArgumentParser(argparse.ArgumentParser):
class _FlagAction(argparse.Action):
"""Action class for Abseil non-boolean flags."""
- def __init__(self, option_strings, dest, help, metavar, flag_instance): # pylint: disable=redefined-builtin
+ def __init__(
+ self,
+ option_strings,
+ dest,
+ help, # pylint: disable=redefined-builtin
+ metavar,
+ flag_instance,
+ default=argparse.SUPPRESS):
"""Initializes _FlagAction.
Args:
@@ -246,6 +254,8 @@ class _FlagAction(argparse.Action):
help: See argparse.Action.
metavar: See argparse.Action.
flag_instance: absl.flags.Flag, the absl flag instance.
+ default: Ignored. The flag always uses dest=argparse.SUPPRESS so it
+ doesn't affect the parsing result.
"""
del dest
self._flag_instance = flag_instance
@@ -264,7 +274,14 @@ class _FlagAction(argparse.Action):
class _BooleanFlagAction(argparse.Action):
"""Action class for Abseil boolean flags."""
- def __init__(self, option_strings, dest, help, metavar, flag_instance): # pylint: disable=redefined-builtin
+ def __init__(
+ self,
+ option_strings,
+ dest,
+ help, # pylint: disable=redefined-builtin
+ metavar,
+ flag_instance,
+ default=argparse.SUPPRESS):
"""Initializes _BooleanFlagAction.
Args:
@@ -273,8 +290,10 @@ class _BooleanFlagAction(argparse.Action):
help: See argparse.Action.
metavar: See argparse.Action.
flag_instance: absl.flags.Flag, the absl flag instance.
+ default: Ignored. The flag always uses dest=argparse.SUPPRESS so it
+ doesn't affect the parsing result.
"""
- del dest
+ del dest, default
self._flag_instance = flag_instance
flag_names = [self._flag_instance.name]
if self._flag_instance.short_name:
diff --git a/absl/flags/tests/argparse_flags_test.py b/absl/flags/tests/argparse_flags_test.py
index ddd62a9..a2bcbe5 100644
--- a/absl/flags/tests/argparse_flags_test.py
+++ b/absl/flags/tests/argparse_flags_test.py
@@ -36,6 +36,7 @@ import six
class ArgparseFlagsTest(parameterized.TestCase):
def setUp(self):
+ super().setUp()
self._absl_flags = flags.FlagValues()
flags.DEFINE_bool(
'absl_bool', None, 'help for --absl_bool.',
@@ -393,6 +394,15 @@ class ArgparseFlagsTest(parameterized.TestCase):
with self.assertRaises(SystemExit):
parser.parse_args(cmd_args)
+ def test_argument_default(self):
+ # Regression test for https://github.com/abseil/abseil-py/issues/171.
+ parser = argparse_flags.ArgumentParser(
+ inherited_absl_flags=self._absl_flags, argument_default=23)
+ parser.add_argument(
+ '--magic_number', type=int, help='The magic number to use.')
+ args = parser.parse_args([])
+ self.assertEqual(args.magic_number, 23)
+
class ArgparseWithAppRunTest(parameterized.TestCase):
diff --git a/absl/logging/BUILD b/absl/logging/BUILD
index 90a90ed..9526040 100644
--- a/absl/logging/BUILD
+++ b/absl/logging/BUILD
@@ -1,5 +1,3 @@
-load("//absl:_build_defs.bzl", "py2and3_test", "py2py3_test_binary")
-
licenses(["notice"]) # Apache 2.0
exports_files(["LICENSE"])
@@ -24,11 +22,12 @@ py_library(
visibility = ["//visibility:public"],
)
-py2and3_test(
+py_test(
name = "tests/converter_test",
size = "small",
srcs = ["tests/converter_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":converter",
":logging",
@@ -36,11 +35,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/logging_test",
size = "small",
srcs = ["tests/logging_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":logging",
"//absl/flags",
@@ -52,11 +52,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/log_before_import_test",
srcs = ["tests/log_before_import_test.py"],
main = "tests/log_before_import_test.py",
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":logging",
"//absl/testing:absltest",
@@ -64,10 +65,11 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/verbosity_flag_test",
srcs = ["tests/verbosity_flag_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":logging",
"//absl/flags",
@@ -75,11 +77,12 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/logging_functional_test_helper",
testonly = 1,
srcs = ["tests/logging_functional_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":logging",
"//absl:app",
@@ -89,13 +92,14 @@ py2py3_test_binary(
],
)
-py2and3_test(
+py_test(
name = "tests/logging_functional_test",
size = "large",
srcs = ["tests/logging_functional_test.py"],
data = [":tests/logging_functional_test_helper"],
+ python_version = "PY3",
shard_count = 50,
- srcs_version = "PY2AND3",
+ srcs_version = "PY3",
deps = [
":logging",
"//absl/flags",
diff --git a/absl/testing/BUILD b/absl/testing/BUILD
index 9cd28c9..a54997e 100644
--- a/absl/testing/BUILD
+++ b/absl/testing/BUILD
@@ -1,5 +1,3 @@
-load("//absl:_build_defs.bzl", "py2and3_test", "py2py3_test_binary")
-
licenses(["notice"]) # Apache 2.0
exports_files(["LICENSE"])
@@ -89,22 +87,11 @@ py_library(
srcs_version = "PY2AND3",
visibility = ["//:__subpackages__"],
deps = [
- ":_bazel_selected_py3", # buildcleaner: keep
"//absl/flags",
],
)
py_library(
- name = "_bazel_selected_py3",
- testonly = 1,
- srcs = select({
- "//absl:py3_mode": ["_bazel_selected_py3.py"],
- "//absl:py2_mode": [],
- }),
- srcs_version = "PY2AND3",
-)
-
-py_library(
name = "_pretty_print_reporter",
srcs = ["_pretty_print_reporter.py"],
srcs_version = "PY2AND3",
@@ -113,12 +100,13 @@ py_library(
],
)
-py2and3_test(
+py_test(
name = "tests/absltest_filtering_test",
size = "small",
srcs = ["tests/absltest_filtering_test.py"],
data = [":tests/absltest_filtering_test_helper"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -127,20 +115,22 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/absltest_filtering_test_helper",
testonly = 1,
srcs = ["tests/absltest_filtering_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [":absltest"],
)
-py2and3_test(
+py_test(
name = "tests/absltest_fail_fast_test",
size = "small",
srcs = ["tests/absltest_fail_fast_test.py"],
data = [":tests/absltest_fail_fast_test_helper"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -148,20 +138,22 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/absltest_fail_fast_test_helper",
testonly = 1,
srcs = ["tests/absltest_fail_fast_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [":absltest"],
)
-py2and3_test(
+py_test(
name = "tests/absltest_randomization_test",
size = "medium",
srcs = ["tests/absltest_randomization_test.py"],
data = [":tests/absltest_randomization_testcase"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -170,22 +162,24 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/absltest_randomization_testcase",
testonly = 1,
srcs = ["tests/absltest_randomization_testcase.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":absltest",
],
)
-py2and3_test(
+py_test(
name = "tests/absltest_sharding_test",
size = "small",
srcs = ["tests/absltest_sharding_test.py"],
data = [":tests/absltest_sharding_test_helper"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -193,20 +187,22 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/absltest_sharding_test_helper",
testonly = 1,
srcs = ["tests/absltest_sharding_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [":absltest"],
)
-py2and3_test(
+py_test(
name = "tests/absltest_test",
size = "small",
srcs = ["tests/absltest_test.py"],
data = [":tests/absltest_test_helper"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -216,21 +212,23 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/absltest_test_helper",
testonly = 1,
srcs = ["tests/absltest_test_helper.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":absltest",
"//absl/flags",
],
)
-py2and3_test(
+py_test(
name = "tests/flagsaver_test",
srcs = ["tests/flagsaver_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":absltest",
":flagsaver",
@@ -238,10 +236,11 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/parameterized_test",
srcs = ["tests/parameterized_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":absltest",
":parameterized",
@@ -250,11 +249,12 @@ py2and3_test(
],
)
-py2and3_test(
+py_test(
name = "tests/xml_reporter_test",
srcs = ["tests/xml_reporter_test.py"],
data = [":tests/xml_reporter_helper_test"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":_bazelize_command",
":absltest",
@@ -267,11 +267,12 @@ py2and3_test(
],
)
-py2py3_test_binary(
+py_binary(
name = "tests/xml_reporter_helper_test",
testonly = 1,
srcs = ["tests/xml_reporter_helper_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
":absltest",
"//absl/flags",
diff --git a/absl/testing/_bazel_selected_py3.py b/absl/testing/_bazel_selected_py3.py
deleted file mode 100644
index ea0306e..0000000
--- a/absl/testing/_bazel_selected_py3.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# The presence of this module means, at build time, Bazel used Python 3
-# when resolving select() calls based on Python version.
diff --git a/absl/testing/_bazelize_command.py b/absl/testing/_bazelize_command.py
index c1d94b3..fdf6eb6 100644
--- a/absl/testing/_bazelize_command.py
+++ b/absl/testing/_bazelize_command.py
@@ -22,11 +22,6 @@ import os
from absl import flags
-try:
- from absl.testing import _bazel_selected_py3
-except ImportError:
- _bazel_selected_py3 = None
-
FLAGS = flags.FLAGS
@@ -47,9 +42,6 @@ def get_executable_path(py_binary_name):
Raises:
RuntimeError: Raised when it cannot locate the executable path.
"""
- root, ext = os.path.splitext(py_binary_name)
- suffix = 'py3' if _bazel_selected_py3 else 'py2'
- py_binary_name = '{}_{}{}'.format(root, suffix, ext)
if os.name == 'nt':
py_binary_name += '.exe'
diff --git a/absl/testing/tests/parameterized_test.py b/absl/testing/tests/parameterized_test.py
index fb618ea..ebfa72b 100644
--- a/absl/testing/tests/parameterized_test.py
+++ b/absl/testing/tests/parameterized_test.py
@@ -420,7 +420,7 @@ class ParameterizedTestsTest(absltest.TestCase):
test(res)
self.assertIn(test.arguments, params)
params.remove(test.arguments)
- self.assertEqual(0, len(params))
+ self.assertEmpty(params)
def test_recorded_failures(self):
ts = unittest.makeSuite(self.MixedAdditionParams)
@@ -430,8 +430,8 @@ class ParameterizedTestsTest(absltest.TestCase):
ts.run(res)
self.assertEqual(2, res.testsRun)
self.assertFalse(res.wasSuccessful())
- self.assertEqual(1, len(res.failures))
- self.assertEqual(0, len(res.errors))
+ self.assertLen(res.failures, 1)
+ self.assertEmpty(res.errors)
def test_short_description(self):
ts = unittest.makeSuite(self.GoodAdditionParams)
@@ -742,7 +742,7 @@ class ParameterizedTestsTest(absltest.TestCase):
loader = unittest.TestLoader()
ts = list(loader.loadTestsFromName('NamedTests.test_something_interesting',
module=self))
- self.assertEqual(1, len(ts))
+ self.assertLen(ts, 1)
self.assertEndsWith(ts[0].id(), '.test_something_interesting')
def test_load_dict_named_test(self):
@@ -750,7 +750,7 @@ class ParameterizedTestsTest(absltest.TestCase):
ts = list(
loader.loadTestsFromName(
'NamedTests.test_dict_something_interesting', module=self))
- self.assertEqual(1, len(ts))
+ self.assertLen(ts, 1)
self.assertEndsWith(ts[0].id(), '.test_dict_something_interesting')
def test_load_mixed_named_test(self):
@@ -758,7 +758,7 @@ class ParameterizedTestsTest(absltest.TestCase):
ts = list(
loader.loadTestsFromName(
'NamedTests.test_mixed_something_interesting', module=self))
- self.assertEqual(1, len(ts))
+ self.assertLen(ts, 1)
self.assertEndsWith(ts[0].id(), '.test_mixed_something_interesting')
def test_duplicate_named_test_fails(self):
@@ -826,7 +826,7 @@ class ParameterizedTestsTest(absltest.TestCase):
expected_testcases = [1, 2, 3, 4, 5, 6]
self.assertTrue(hasattr(test_something, 'testcases'))
- self.assertItemsEqual(expected_testcases, test_something.testcases)
+ self.assertCountEqual(expected_testcases, test_something.testcases)
def test_chained_decorator(self):
ts = unittest.makeSuite(self.ChainedTests)
@@ -872,14 +872,14 @@ class ParameterizedTestsTest(absltest.TestCase):
res = unittest.TestResult()
ts.run(res)
self.assertEqual(4, res.testsRun)
- self.assertEqual(2, len(res.failures))
+ self.assertLen(res.failures, 2)
def test_generator_decorated_class(self):
ts = unittest.makeSuite(self.GeneratorDecoratedClass)
res = unittest.TestResult()
ts.run(res)
self.assertEqual(32, res.testsRun)
- self.assertEqual(16, len(res.failures))
+ self.assertLen(res.failures, 16)
def test_no_duplicate_decorations(self):
with self.assertRaises(AssertionError):
@@ -891,7 +891,7 @@ class ParameterizedTestsTest(absltest.TestCase):
def test_something(self, unused_obj):
pass
- def tes_double_class_decorations_not_supported(self):
+ def test_double_class_decorations_not_supported(self):
@parameterized.parameters('foo', 'bar')
class SuperclassWithClassDecorator(parameterized.TestCase):
@@ -915,7 +915,7 @@ class ParameterizedTestsTest(absltest.TestCase):
# One for when the skip wrapper is called first and doesn't iterate.
self.assertEqual(3, res.testsRun)
self.assertFalse(res.wasSuccessful())
- self.assertLen(res.failures, 0)
+ self.assertEmpty(res.failures)
# One error from test_other_then_parameterized.
self.assertLen(res.errors, 1)
@@ -933,7 +933,7 @@ class ParameterizedTestsTest(absltest.TestCase):
# One for when the skip wrapper is called first and doesn't iterate.
self.assertEqual(3, res.testsRun)
self.assertFalse(res.wasSuccessful())
- self.assertLen(res.failures, 0)
+ self.assertEmpty(res.failures)
# One error from test_other_then_parameterized.
self.assertLen(res.errors, 1)
@@ -951,7 +951,7 @@ class ParameterizedTestsTest(absltest.TestCase):
# One for when the skip wrapper is called first and doesn't iterate.
self.assertEqual(3, res.testsRun)
self.assertFalse(res.wasSuccessful())
- self.assertLen(res.failures, 0)
+ self.assertEmpty(res.failures)
# One error from test_other_then_parameterized.
self.assertLen(res.errors, 1)
@@ -996,7 +996,7 @@ class ParameterizedTestsTest(absltest.TestCase):
full_class_name + '.test_normal1 (13)',
]
self.assertTrue(test_ids)
- self.assertItemsEqual(expected_test_ids, test_ids)
+ self.assertCountEqual(expected_test_ids, test_ids)
def test_multi_generators(self):
ts = unittest.makeSuite(self.MultiGeneratorsTestCase)
diff --git a/absl/third_party/unittest3_backport/BUILD b/absl/third_party/unittest3_backport/BUILD
index d619cee..1d29df9 100644
--- a/absl/third_party/unittest3_backport/BUILD
+++ b/absl/third_party/unittest3_backport/BUILD
@@ -2,8 +2,6 @@ licenses(["notice"]) # New BSD, Python Software Foundation
exports_files(["LICENSE"])
-load("//absl:_build_defs.bzl", "py2and3_test")
-
py_library(
name = "unittest3_backport",
srcs = ["__init__.py"],
@@ -33,11 +31,12 @@ py_library(
],
)
-py2and3_test(
+py_test(
name = "tests/unittest3_backport_test",
size = "small",
srcs = ["tests/unittest3_backport_test.py"],
- srcs_version = "PY2AND3",
+ python_version = "PY3",
+ srcs_version = "PY3",
deps = [
"//absl/testing:absltest",
"//absl/testing:xml_reporter",