diff options
Diffstat (limited to 'absl/testing')
-rw-r--r-- | absl/testing/BUILD | 10 | ||||
-rw-r--r-- | absl/testing/tests/absltest_fail_fast_test.py | 27 | ||||
-rw-r--r-- | absl/testing/tests/absltest_fail_fast_test_helper.py | 9 | ||||
-rw-r--r-- | absl/testing/tests/absltest_filtering_test.py | 47 | ||||
-rw-r--r-- | absl/testing/tests/absltest_filtering_test_helper.py | 9 |
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() |