aboutsummaryrefslogtreecommitdiff
path: root/absl/testing
diff options
context:
space:
mode:
Diffstat (limited to 'absl/testing')
-rw-r--r--absl/testing/BUILD10
-rw-r--r--absl/testing/tests/absltest_fail_fast_test.py27
-rw-r--r--absl/testing/tests/absltest_fail_fast_test_helper.py9
-rw-r--r--absl/testing/tests/absltest_filtering_test.py47
-rw-r--r--absl/testing/tests/absltest_filtering_test_helper.py9
5 files changed, 58 insertions, 44 deletions
diff --git a/absl/testing/BUILD b/absl/testing/BUILD
index 609c3cc..6e0164a 100644
--- a/absl/testing/BUILD
+++ b/absl/testing/BUILD
@@ -119,7 +119,10 @@ py_binary(
srcs = ["tests/absltest_filtering_test_helper.py"],
python_version = "PY3",
srcs_version = "PY3",
- deps = [":absltest"],
+ deps = [
+ ":absltest",
+ "//absl:app",
+ ],
)
py_test(
@@ -143,7 +146,10 @@ py_binary(
srcs = ["tests/absltest_fail_fast_test_helper.py"],
python_version = "PY3",
srcs_version = "PY3",
- deps = [":absltest"],
+ deps = [
+ ":absltest",
+ "//absl:app",
+ ],
)
py_test(
diff --git a/absl/testing/tests/absltest_fail_fast_test.py b/absl/testing/tests/absltest_fail_fast_test.py
index dbda0a1..e8ca1d6 100644
--- a/absl/testing/tests/absltest_fail_fast_test.py
+++ b/absl/testing/tests/absltest_fail_fast_test.py
@@ -28,7 +28,7 @@ from absl.testing import parameterized
@parameterized.named_parameters(
- ('use_argv', True),
+ ('use_app_run', True),
('no_argv', False),
)
class TestFailFastTest(parameterized.TestCase):
@@ -41,13 +41,13 @@ class TestFailFastTest(parameterized.TestCase):
super().setUp()
self._test_name = 'absl/testing/tests/absltest_fail_fast_test_helper'
- def _run_fail_fast(self, fail_fast, use_argv):
+ def _run_fail_fast(self, fail_fast, use_app_run):
"""Runs the py_test binary in a subprocess.
Args:
fail_fast: string, the fail fast value.
- use_argv: bool, whether the test helper should use an explicit argv=
- parameter when calling absltest.main.
+ use_app_run: bool, whether the test helper should call
+ `absltest.main(argv=)` inside `app.run`.
Returns:
(stdout, exit_code) tuple of (string, int).
@@ -60,8 +60,7 @@ class TestFailFastTest(parameterized.TestCase):
additional_args = []
if fail_fast is not None:
env['TESTBRIDGE_TEST_RUNNER_FAIL_FAST'] = fail_fast
- if use_argv:
- env['USE_ARGV'] = '1'
+ env['USE_APP_RUN'] = '1' if use_app_run else '0'
proc = subprocess.Popen(
args=([_bazelize_command.get_executable_path(self._test_name)]
@@ -75,8 +74,8 @@ class TestFailFastTest(parameterized.TestCase):
logging.info('output: %s', stdout)
return stdout, proc.wait()
- def test_no_fail_fast(self, use_argv):
- out, exit_code = self._run_fail_fast(None, use_argv)
+ def test_no_fail_fast(self, use_app_run):
+ out, exit_code = self._run_fail_fast(None, use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class A test A', out)
self.assertIn('class A test B', out)
@@ -84,8 +83,8 @@ class TestFailFastTest(parameterized.TestCase):
self.assertIn('class A test D', out)
self.assertIn('class A test E', out)
- def test_empty_fail_fast(self, use_argv):
- out, exit_code = self._run_fail_fast('', use_argv)
+ def test_empty_fail_fast(self, use_app_run):
+ out, exit_code = self._run_fail_fast('', use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class A test A', out)
self.assertIn('class A test B', out)
@@ -93,8 +92,8 @@ class TestFailFastTest(parameterized.TestCase):
self.assertIn('class A test D', out)
self.assertIn('class A test E', out)
- def test_fail_fast_1(self, use_argv):
- out, exit_code = self._run_fail_fast('1', use_argv)
+ def test_fail_fast_1(self, use_app_run):
+ out, exit_code = self._run_fail_fast('1', use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class A test A', out)
self.assertIn('class A test B', out)
@@ -102,8 +101,8 @@ class TestFailFastTest(parameterized.TestCase):
self.assertNotIn('class A test D', out)
self.assertNotIn('class A test E', out)
- def test_fail_fast_0(self, use_argv):
- out, exit_code = self._run_fail_fast('0', use_argv)
+ def test_fail_fast_0(self, use_app_run):
+ out, exit_code = self._run_fail_fast('0', use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class A test A', out)
self.assertIn('class A test B', out)
diff --git a/absl/testing/tests/absltest_fail_fast_test_helper.py b/absl/testing/tests/absltest_fail_fast_test_helper.py
index dbef068..339a569 100644
--- a/absl/testing/tests/absltest_fail_fast_test_helper.py
+++ b/absl/testing/tests/absltest_fail_fast_test_helper.py
@@ -21,6 +21,7 @@ from __future__ import print_function
import os
import sys
+from absl import app
from absl.testing import absltest
@@ -44,8 +45,12 @@ class ClassA(absltest.TestCase):
sys.stderr.write('\nclass A test E\n')
+def main(argv):
+ absltest.main(argv=argv)
+
+
if __name__ == '__main__':
- if os.getenv('USE_ARGV', '0') == '1':
- absltest.main(argv=sys.argv)
+ if os.environ['USE_APP_RUN'] == '1':
+ app.run(main)
else:
absltest.main()
diff --git a/absl/testing/tests/absltest_filtering_test.py b/absl/testing/tests/absltest_filtering_test.py
index 0097a93..964a0b4 100644
--- a/absl/testing/tests/absltest_filtering_test.py
+++ b/absl/testing/tests/absltest_filtering_test.py
@@ -11,7 +11,6 @@
# 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.
-
"""Tests for test filtering protocol."""
from __future__ import absolute_import
@@ -28,9 +27,9 @@ from absl.testing import parameterized
@parameterized.named_parameters(
- ('as_env_variable_use_argv', True, True),
+ ('as_env_variable_use_app_run', True, True),
('as_env_variable_no_argv', True, False),
- ('as_commandline_args_use_argv', False, True),
+ ('as_commandline_args_use_app_run', False, True),
('as_commandline_args_no_argv', False, False),
)
class TestFilteringTest(absltest.TestCase):
@@ -44,15 +43,15 @@ class TestFilteringTest(absltest.TestCase):
super().setUp()
self._test_name = 'absl/testing/tests/absltest_filtering_test_helper'
- def _run_filtered(self, test_filter, use_env_variable, use_argv):
+ def _run_filtered(self, test_filter, use_env_variable, use_app_run):
"""Runs the py_test binary in a subprocess.
Args:
test_filter: string, the filter argument to use.
use_env_variable: bool, pass the test filter as environment variable if
- True, otherwise pass as command line arguments.
- use_argv: bool, whether the test helper should use an explicit argv=
- parameter when calling absltest.main.
+ True, otherwise pass as command line arguments.
+ use_app_run: bool, whether the test helper should call
+ `absltest.main(argv=)` inside `app.run`.
Returns:
(stdout, exit_code) tuple of (string, int).
@@ -62,18 +61,17 @@ class TestFilteringTest(absltest.TestCase):
# This is used by the random module on Windows to locate crypto
# libraries.
env['SYSTEMROOT'] = os.environ['SYSTEMROOT']
+ env['USE_APP_RUN'] = '1' if use_app_run else '0'
additional_args = []
if test_filter is not None:
if use_env_variable:
env['TESTBRIDGE_TEST_ONLY'] = test_filter
elif test_filter:
additional_args.extend(test_filter.split(' '))
- if use_argv:
- env['USE_ARGV'] = '1'
proc = subprocess.Popen(
- args=([_bazelize_command.get_executable_path(self._test_name)]
- + additional_args),
+ args=([_bazelize_command.get_executable_path(self._test_name)] +
+ additional_args),
env=env,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
@@ -83,36 +81,37 @@ class TestFilteringTest(absltest.TestCase):
logging.info('output: %s', stdout)
return stdout, proc.wait()
- def test_no_filter(self, use_env_variable, use_argv):
- out, exit_code = self._run_filtered(None, use_env_variable, use_argv)
+ def test_no_filter(self, use_env_variable, use_app_run):
+ out, exit_code = self._run_filtered(None, use_env_variable, use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class B test E', out)
- def test_empty_filter(self, use_env_variable, use_argv):
- out, exit_code = self._run_filtered('', use_env_variable, use_argv)
+ def test_empty_filter(self, use_env_variable, use_app_run):
+ out, exit_code = self._run_filtered('', use_env_variable, use_app_run)
self.assertEqual(1, exit_code)
self.assertIn('class B test E', out)
- def test_class_filter(self, use_env_variable, use_argv):
- out, exit_code = self._run_filtered('ClassA', use_env_variable, use_argv)
+ def test_class_filter(self, use_env_variable, use_app_run):
+ out, exit_code = self._run_filtered('ClassA', use_env_variable, use_app_run)
self.assertEqual(0, exit_code)
self.assertNotIn('class B', out)
- def test_method_filter(self, use_env_variable, use_argv):
+ def test_method_filter(self, use_env_variable, use_app_run):
out, exit_code = self._run_filtered('ClassB.testA', use_env_variable,
- use_argv)
+ use_app_run)
self.assertEqual(0, exit_code)
self.assertNotIn('class A', out)
self.assertNotIn('class B test B', out)
out, exit_code = self._run_filtered('ClassB.testE', use_env_variable,
- use_argv)
+ use_app_run)
self.assertEqual(1, exit_code)
self.assertNotIn('class A', out)
- def test_multiple_class_and_method_filter(self, use_env_variable, use_argv):
+ def test_multiple_class_and_method_filter(self, use_env_variable,
+ use_app_run):
out, exit_code = self._run_filtered(
- 'ClassA.testA ClassA.testB ClassB.testC', use_env_variable, use_argv)
+ 'ClassA.testA ClassA.testB ClassB.testC', use_env_variable, use_app_run)
self.assertEqual(0, exit_code)
self.assertIn('class A test A', out)
self.assertIn('class A test B', out)
@@ -120,9 +119,9 @@ class TestFilteringTest(absltest.TestCase):
self.assertIn('class B test C', out)
self.assertNotIn('class B test A', out)
- def test_not_found_filters(self, use_env_variable, use_argv):
+ def test_not_found_filters(self, use_env_variable, use_app_run):
out, exit_code = self._run_filtered('NotExistedClass.not_existed_method',
- use_env_variable, use_argv)
+ use_env_variable, use_app_run)
self.assertEqual(1, exit_code)
self.assertIn("has no attribute 'NotExistedClass'", out)
diff --git a/absl/testing/tests/absltest_filtering_test_helper.py b/absl/testing/tests/absltest_filtering_test_helper.py
index 9bc4568..2775a62 100644
--- a/absl/testing/tests/absltest_filtering_test_helper.py
+++ b/absl/testing/tests/absltest_filtering_test_helper.py
@@ -21,6 +21,7 @@ from __future__ import print_function
import os
import sys
+from absl import app
from absl.testing import absltest
@@ -57,8 +58,12 @@ class ClassB(absltest.TestCase):
self.fail('Force failure')
+def main(argv):
+ absltest.main(argv=argv)
+
+
if __name__ == '__main__':
- if os.getenv('USE_ARGV', '0') == '1':
- absltest.main(argv=sys.argv)
+ if os.environ['USE_APP_RUN'] == '1':
+ app.run(main)
else:
absltest.main()