| Index: third_party/typ/typ/tests/runner_test.py
|
| diff --git a/third_party/typ/typ/tests/runner_test.py b/third_party/typ/typ/tests/runner_test.py
|
| index 1d3b0cc5fd10ddff690076dfec02d59910fa9f23..1d8e5103b14ac936cee43064c920462a8e6d12fb 100644
|
| --- a/third_party/typ/typ/tests/runner_test.py
|
| +++ b/third_party/typ/typ/tests/runner_test.py
|
| @@ -18,7 +18,7 @@ from textwrap import dedent as d
|
|
|
|
|
| from typ import Host, Runner, TestCase, TestSet, TestInput
|
| -from typ import WinMultiprocessing, main
|
| +from typ import WinMultiprocessing
|
|
|
|
|
| def _setup_process(child, context): # pylint: disable=W0613
|
| @@ -33,8 +33,11 @@ class RunnerTests(TestCase):
|
| def test_context(self):
|
| r = Runner()
|
| r.args.tests = ['typ.tests.runner_test.ContextTests']
|
| - ret, _, _ = r.run(context={'foo': 'bar'}, setup_fn=_setup_process,
|
| - teardown_fn=_teardown_process)
|
| + r.context = {'foo': 'bar'}
|
| + r.setup_fn = _setup_process
|
| + r.teardown_fn = _teardown_process
|
| + r.win_multiprocessing = WinMultiprocessing.importable
|
| + ret, _, _ = r.run()
|
| self.assertEqual(ret, 0)
|
|
|
| def test_bad_default(self):
|
| @@ -57,6 +60,7 @@ class TestSetTests(TestCase):
|
| test_set = TestSet()
|
| test_set.parallel_tests = [TestInput('nonexistent test')]
|
| r = Runner()
|
| + r.args.jobs = 1
|
| ret, _, _ = r.run(test_set)
|
| self.assertEqual(ret, 1)
|
|
|
| @@ -75,6 +79,7 @@ class TestSetTests(TestCase):
|
| test_set = TestSet()
|
| test_set.parallel_tests = [TestInput('load_test.BaseTest.test_x')]
|
| r = Runner()
|
| + r.args.jobs = 1
|
| ret, _, _ = r.run(test_set)
|
| self.assertEqual(ret, 1)
|
| finally:
|
| @@ -87,7 +92,7 @@ class TestWinMultiprocessing(TestCase):
|
| def make_host(self):
|
| return Host()
|
|
|
| - def call(self, argv, platform=None, importable=None, **kwargs):
|
| + def call(self, argv, platform=None, win_multiprocessing=None, **kwargs):
|
| h = self.make_host()
|
| orig_wd = h.getcwd()
|
| tmpdir = None
|
| @@ -98,8 +103,8 @@ class TestWinMultiprocessing(TestCase):
|
| if platform is not None:
|
| h.platform = platform
|
| r = Runner(h)
|
| - if importable is not None:
|
| - r._main_is_importable = lambda: importable
|
| + if win_multiprocessing is not None:
|
| + r.win_multiprocessing = win_multiprocessing
|
| ret = r.main(argv, **kwargs)
|
| finally:
|
| out, err = h.restore_output()
|
| @@ -112,64 +117,19 @@ class TestWinMultiprocessing(TestCase):
|
| def test_bad_value(self):
|
| self.assertRaises(ValueError, self.call, [], win_multiprocessing='foo')
|
|
|
| - def test_force(self):
|
| - h = self.make_host()
|
| - tmpdir = None
|
| - orig_wd = h.getcwd()
|
| - out = err = None
|
| - out_str = err_str = ''
|
| - try:
|
| - tmpdir = h.mkdtemp()
|
| - h.chdir(tmpdir)
|
| - out = tempfile.NamedTemporaryFile(delete=False)
|
| - err = tempfile.NamedTemporaryFile(delete=False)
|
| - ret = main([], stdout=out, stderr=err,
|
| - win_multiprocessing=WinMultiprocessing.force)
|
| - finally:
|
| - h.chdir(orig_wd)
|
| - if tmpdir:
|
| - h.rmtree(tmpdir)
|
| - if out:
|
| - out.close()
|
| - out = open(out.name)
|
| - out_str = out.read()
|
| - out.close()
|
| - h.remove(out.name)
|
| - if err:
|
| - err.close()
|
| - err = open(err.name)
|
| - err_str = err.read()
|
| - err.close()
|
| - h.remove(err.name)
|
| -
|
| - self.assertEqual(ret, 1)
|
| - self.assertEqual(out_str, 'No tests to run.\n')
|
| - self.assertEqual(err_str, '')
|
| -
|
| def test_ignore(self):
|
| h = self.make_host()
|
| if h.platform == 'win32': # pragma: win32
|
| self.assertRaises(ValueError, self.call, [],
|
| win_multiprocessing=WinMultiprocessing.ignore)
|
| else:
|
| - result = self.call([], platform=None, importable=False,
|
| + result = self.call([],
|
| win_multiprocessing=WinMultiprocessing.ignore)
|
| ret, out, err = result
|
| self.assertEqual(ret, 1)
|
| self.assertEqual(out, 'No tests to run.\n')
|
| self.assertEqual(err, '')
|
|
|
| - def test_multiple_jobs(self):
|
| - self.assertRaises(ValueError, self.call, ['-j', '2'],
|
| - platform='win32', importable=False)
|
| -
|
| - def test_normal(self):
|
| - # This tests that typ itself is importable ...
|
| - ret, out, err = self.call([])
|
| - self.assertEqual(ret, 1)
|
| - self.assertEqual(out, 'No tests to run.\n')
|
| - self.assertEqual(err, '')
|
| -
|
| def test_real_unimportable_main(self):
|
| h = self.make_host()
|
| tmpdir = None
|
| @@ -182,11 +142,19 @@ class TestWinMultiprocessing(TestCase):
|
| out = tempfile.NamedTemporaryFile(delete=False)
|
| err = tempfile.NamedTemporaryFile(delete=False)
|
| path_above_typ = h.realpath(h.dirname(__file__), '..', '..')
|
| - env = {'PYTHONPATH': path_above_typ}
|
| + env = h.env.copy()
|
| + if 'PYTHONPATH' in env: # pragma: untested
|
| + env['PYTHONPATH'] = '%s%s%s' % (env['PYTHONPATH'],
|
| + h.pathsep,
|
| + path_above_typ)
|
| + else: # pragma: untested.
|
| + env['PYTHONPATH'] = path_above_typ
|
| +
|
| h.write_text_file('test', d("""
|
| import sys
|
| import typ
|
| - sys.exit(typ.main())
|
| + importable = typ.WinMultiprocessing.importable
|
| + sys.exit(typ.main(win_multiprocessing=importable))
|
| """))
|
| h.stdout = out
|
| h.stderr = err
|
| @@ -211,28 +179,19 @@ class TestWinMultiprocessing(TestCase):
|
|
|
| self.assertEqual(ret, 1)
|
| self.assertEqual(out_str, '')
|
| - self.assertIn('ValueError: The __main__ module is not importable',
|
| + self.assertIn('ValueError: The __main__ module ',
|
| err_str)
|
|
|
| - def test_run_serially(self):
|
| - ret, out, err = self.call([], importable=False,
|
| - win_multiprocessing=WinMultiprocessing.spawn)
|
| - self.assertEqual(ret, 1)
|
| - self.assertEqual(out, 'No tests to run.\n')
|
| - self.assertEqual(err, '')
|
| -
|
| def test_single_job(self):
|
| - ret, out, err = self.call(['-j', '1'], platform='win32',
|
| - importable=False)
|
| + ret, out, err = self.call(['-j', '1'], platform='win32')
|
| self.assertEqual(ret, 1)
|
| - self.assertEqual(out, 'No tests to run.\n')
|
| + self.assertIn('No tests to run.', out)
|
| self.assertEqual(err, '')
|
|
|
| def test_spawn(self):
|
| - ret, out, err = self.call([], importable=False,
|
| - win_multiprocessing=WinMultiprocessing.spawn)
|
| + ret, out, err = self.call([])
|
| self.assertEqual(ret, 1)
|
| - self.assertEqual(out, 'No tests to run.\n')
|
| + self.assertIn('No tests to run.', out)
|
| self.assertEqual(err, '')
|
|
|
|
|
|
|