From b2152b2e1f0d2930f92f8bd7953402ac47528e0f Mon Sep 17 00:00:00 2001 From: Tommy Beadle Date: Thu, 2 Jun 2016 15:03:36 -0400 Subject: [PATCH] [Issue 20973] Add total ordering unit tests for ipaddress module. --- Lib/test/test_ipaddress.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py index 643d742..3edea08 100644 --- a/Lib/test/test_ipaddress.py +++ b/Lib/test/test_ipaddress.py @@ -587,8 +587,16 @@ class ComparisonTests(unittest.TestCase): v4_objects = v4_addresses + [v4net] v6_addresses = [v6addr, v6intf] v6_objects = v6_addresses + [v6net] + objects = v4_objects + v6_objects + v4addr2 = ipaddress.IPv4Address(2) + v4net2 = ipaddress.IPv4Network(2) + v4intf2 = ipaddress.IPv4Interface(2) + v6addr2 = ipaddress.IPv6Address(2) + v6net2 = ipaddress.IPv6Network(2) + v6intf2 = ipaddress.IPv6Interface(2) + def test_foreign_type_equality(self): # __eq__ should never raise TypeError directly other = object() @@ -607,6 +615,31 @@ class ComparisonTests(unittest.TestCase): continue self.assertNotEqual(lhs, rhs) + def test_same_type_equality(self): + for obj in self.objects: + self.assertEqual(obj, obj) + self.assertLessEqual(obj, obj) + self.assertGreaterEqual(obj, obj) + + def test_same_type_ordering(self): + for lhs, rhs in ( + (self.v4addr, self.v4addr2), + (self.v4net, self.v4net2), + (self.v4intf, self.v4intf2), + (self.v6addr, self.v6addr2), + (self.v6net, self.v6net2), + (self.v6intf, self.v6intf2), + ): + self.assertNotEqual(lhs, rhs) + self.assertLess(lhs, rhs) + self.assertLessEqual(lhs, rhs) + self.assertGreater(rhs, lhs) + self.assertGreaterEqual(rhs, lhs) + self.assertFalse(lhs > rhs) + self.assertFalse(rhs < lhs) + self.assertFalse(lhs >= rhs) + self.assertFalse(rhs <= lhs) + def test_containment(self): for obj in self.v4_addresses: self.assertIn(obj, self.v4net) -- 2.8.2