From 751f61a6567c7a95f037a296eca23d67e2274547 Mon Sep 17 00:00:00 2001 From: pikastech Date: Tue, 9 Aug 2022 18:36:43 +0800 Subject: [PATCH] use 'is' and 'in' and 'assert' in unittest update unittest --- package/unittest/unittest.py | 42 ++++++++++++++++------- port/linux/package/pikascript/unittest.py | 42 ++++++++++++++++------- 2 files changed, 58 insertions(+), 26 deletions(-) diff --git a/package/unittest/unittest.py b/package/unittest/unittest.py index 8e12919ba..e31ccd96f 100644 --- a/package/unittest/unittest.py +++ b/package/unittest/unittest.py @@ -28,27 +28,47 @@ class TestResult: class TestCase: def assertEqual(self, x, y): msg = "%r vs (expected) %r" % (x, y) - _assert(x == y, msg) + assert x == y, msg def assertNotEqual(self, x, y): msg = "%r not expected to be equal %r" % (x, y) - _assert(x != y, msg) + assert x != y, msg def assertLessEqual(self, x, y): msg = "%r is expected to be <= %r" % (x, y) - _assert(x <= y, msg) + assert x <= y, msg def assertGreaterEqual(self, x, y): msg = "%r is expected to be >= %r" % (x, y) - _assert(x >= y, msg) + assert x >= y, msg def assertTrue(self, x): msg = "Expected %r to be True" % x - _assert(x, msg) + assert x, msg def assertFalse(self, x): msg = "Expected %r to be False" % x - _assert(not x, msg) + assert not x, msg + + def assertIs(self, x, y): + msg = "%r is not %r" % (x, y) + assert x is y, msg + + def assertIsNot(self, x, y): + msg = "%r is %r" % (x, y) + assert x is not y, msg + + def assertIsNone(self, x): + msg = "%r is not None" % x + assert x is None, msg + + def assertIsNotNone(self, x): + msg = "%r is None" % x + assert x is not None, msg + + def assertIn(self, x, y): + msg = "Expected %r to be in %r" % (x, y) + assert x in y, msg def run(self, result, suite_name): _unittest._case_run(self, result, suite_name) @@ -75,7 +95,9 @@ class TextTestRunner: print("----------------------------------------------------------------------") print("Ran %d tests\n" % res.testsRun) if res.failuresNum > 0 or res.errorsNum > 0: - print("FAILED (failures=%d, errors=%d)" % (res.failuresNum, res.errorsNum)) + s = "FAILED" + s += " (%d errors, %d failures)" % (res.errorsNum, res.failuresNum) + print(s) else: msg = "OK" if res.skippedNum > 0: @@ -83,9 +105,3 @@ class TextTestRunner: print(msg) return res - - -def _assert(res, msg): - if not res: - print("Assertion failed: %s" % msg) - raise diff --git a/port/linux/package/pikascript/unittest.py b/port/linux/package/pikascript/unittest.py index 8e12919ba..e31ccd96f 100644 --- a/port/linux/package/pikascript/unittest.py +++ b/port/linux/package/pikascript/unittest.py @@ -28,27 +28,47 @@ class TestResult: class TestCase: def assertEqual(self, x, y): msg = "%r vs (expected) %r" % (x, y) - _assert(x == y, msg) + assert x == y, msg def assertNotEqual(self, x, y): msg = "%r not expected to be equal %r" % (x, y) - _assert(x != y, msg) + assert x != y, msg def assertLessEqual(self, x, y): msg = "%r is expected to be <= %r" % (x, y) - _assert(x <= y, msg) + assert x <= y, msg def assertGreaterEqual(self, x, y): msg = "%r is expected to be >= %r" % (x, y) - _assert(x >= y, msg) + assert x >= y, msg def assertTrue(self, x): msg = "Expected %r to be True" % x - _assert(x, msg) + assert x, msg def assertFalse(self, x): msg = "Expected %r to be False" % x - _assert(not x, msg) + assert not x, msg + + def assertIs(self, x, y): + msg = "%r is not %r" % (x, y) + assert x is y, msg + + def assertIsNot(self, x, y): + msg = "%r is %r" % (x, y) + assert x is not y, msg + + def assertIsNone(self, x): + msg = "%r is not None" % x + assert x is None, msg + + def assertIsNotNone(self, x): + msg = "%r is None" % x + assert x is not None, msg + + def assertIn(self, x, y): + msg = "Expected %r to be in %r" % (x, y) + assert x in y, msg def run(self, result, suite_name): _unittest._case_run(self, result, suite_name) @@ -75,7 +95,9 @@ class TextTestRunner: print("----------------------------------------------------------------------") print("Ran %d tests\n" % res.testsRun) if res.failuresNum > 0 or res.errorsNum > 0: - print("FAILED (failures=%d, errors=%d)" % (res.failuresNum, res.errorsNum)) + s = "FAILED" + s += " (%d errors, %d failures)" % (res.errorsNum, res.failuresNum) + print(s) else: msg = "OK" if res.skippedNum > 0: @@ -83,9 +105,3 @@ class TextTestRunner: print(msg) return res - - -def _assert(res, msg): - if not res: - print("Assertion failed: %s" % msg) - raise