micropython-lib/python-stdlib/unittest/test_unittest.py

117 wiersze
3.9 KiB
Python

import unittest
class TestUnittestAssertions(unittest.TestCase):
def testFail(self):
with self.assertRaises(AssertionError):
self.fail("failure")
def testEqual(self):
self.assertEqual(0, 0)
self.assertEqual([0, 1, 2], [0, 1, 2])
with self.assertRaises(AssertionError):
self.assertEqual(0, None)
with self.assertRaises(AssertionError):
self.assertEqual([0, 1, 2], [1, 2, 3])
def test_AlmostEqual(self):
self.assertAlmostEqual(1.00000001, 1.0)
self.assertNotAlmostEqual(1.0000001, 1.0)
with self.assertRaises(AssertionError):
self.assertAlmostEqual(1.0000001, 1.0)
with self.assertRaises(AssertionError):
self.assertNotAlmostEqual(1.00000001, 1.0)
self.assertAlmostEqual(1.1, 1.0, places=0)
with self.assertRaises(AssertionError):
self.assertAlmostEqual(1.1, 1.0, places=1)
self.assertAlmostEqual(0, 0.1 + 0.1j, places=0)
self.assertNotAlmostEqual(0, 0.1 + 0.1j, places=1)
with self.assertRaises(AssertionError):
self.assertAlmostEqual(0, 0.1 + 0.1j, places=1)
with self.assertRaises(AssertionError):
self.assertNotAlmostEqual(0, 0.1 + 0.1j, places=0)
self.assertAlmostEqual(float("inf"), float("inf"))
with self.assertRaises(AssertionError):
self.assertNotAlmostEqual(float("inf"), float("inf"))
def test_AmostEqualWithDelta(self):
self.assertAlmostEqual(1.1, 1.0, delta=0.5)
self.assertAlmostEqual(1.0, 1.1, delta=0.5)
self.assertNotAlmostEqual(1.1, 1.0, delta=0.05)
self.assertNotAlmostEqual(1.0, 1.1, delta=0.05)
self.assertAlmostEqual(1.0, 1.0, delta=0.5)
with self.assertRaises(AssertionError):
self.assertNotAlmostEqual(1.0, 1.0, delta=0.5)
with self.assertRaises(AssertionError):
self.assertAlmostEqual(1.1, 1.0, delta=0.05)
with self.assertRaises(AssertionError):
self.assertNotAlmostEqual(1.1, 1.0, delta=0.5)
with self.assertRaises(TypeError):
self.assertAlmostEqual(1.1, 1.0, places=2, delta=2)
with self.assertRaises(TypeError):
self.assertNotAlmostEqual(1.1, 1.0, places=2, delta=2)
def testNotEqual(self):
self.assertNotEqual([0, 1, 2], [0, 2, 1])
with self.assertRaises(AssertionError):
self.assertNotEqual(0, 0)
with self.assertRaises(AssertionError):
self.assertNotEqual([0, 1, 2], [0, 1, 2])
def testIs(self):
self.assertIs(None, None)
with self.assertRaises(AssertionError):
self.assertIs([1, 2, 3], [1, 2, 3])
def testIsNot(self):
self.assertIsNot([1, 2, 3], [1, 2, 3])
with self.assertRaises(AssertionError):
self.assertIsNot(None, None)
def testIsNone(self):
self.assertIsNone(None)
with self.assertRaises(AssertionError):
self.assertIsNone(0)
def testIsNotNone(self):
self.assertIsNotNone(0)
with self.assertRaises(AssertionError):
self.assertIsNotNone(None)
def testTrue(self):
self.assertTrue(True)
with self.assertRaises(AssertionError):
self.assertTrue(False)
def testFalse(self):
self.assertFalse(False)
with self.assertRaises(AssertionError):
self.assertFalse(True)
def testIn(self):
self.assertIn("t", "cat")
with self.assertRaises(AssertionError):
self.assertIn("x", "cat")
def testIsInstance(self):
self.assertIsInstance("cat", str)
with self.assertRaises(AssertionError):
self.assertIsInstance(7, str)
def testRaises(self):
with self.assertRaises(ZeroDivisionError):
1 / 0
pass
@unittest.skip("test of skipping")
def testSkip(self):
self.assertFail("this should be skipped")
if __name__ == "__main__":
unittest.main()