From 8fb44eba5bb9862de5fcc6c785eb6f21ecbd0aea Mon Sep 17 00:00:00 2001 From: Andy Hayden Date: Thu, 30 May 2019 13:40:40 -0700 Subject: chore: refactor python tests to use unittest (#2414) Move every test to a method on DenoTestCase. test.py is a single TestSuite of every TestCase. Add a Spawn context manager for http_server, this is explicitly used where it's needed. Each python test file can now be run independently without needing to manually run http_server. Add --help and consistent flags using argparse for each python test, including --failfast. Use ColorTextTestRunner so that '... ok' is green. --- tools/unit_tests.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'tools/unit_tests.py') diff --git a/tools/unit_tests.py b/tools/unit_tests.py index 10f6a4a47..439ea325f 100755 --- a/tools/unit_tests.py +++ b/tools/unit_tests.py @@ -2,26 +2,27 @@ # Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. import sys import subprocess -import http_server +from http_server import spawn +from util import DenoTestCase, test_main -def unit_tests(deno_exe): - cmd = [ - deno_exe, "run", "--reload", "--allow-run", "js/unit_test_runner.ts" - ] - process = subprocess.Popen( - cmd, bufsize=1, universal_newlines=True, stderr=subprocess.STDOUT) - process.wait() - errcode = process.returncode - if errcode != 0: - sys.exit(errcode) +class JsUnitTests(DenoTestCase): + def test_unit_test_runner(self): + cmd = [ + self.deno_exe, "run", "--reload", "--allow-run", + "js/unit_test_runner.ts" + ] + process = subprocess.Popen( + cmd, bufsize=1, universal_newlines=True, stderr=subprocess.STDOUT) + process.wait() + errcode = process.returncode + if errcode != 0: + raise AssertionError( + "js/unit_test_runner.ts exited with exit code %s" % errcode) -if __name__ == '__main__': - if len(sys.argv) < 2: - print "Usage ./tools/unit_tests.py target/debug/deno" - sys.exit(1) - http_server.spawn() - unit_tests(sys.argv[1]) +if __name__ == '__main__': + with spawn(): + test_main() -- cgit v1.2.3