| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | from test import support | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DictSetTest(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-10 18:55:06 +00:00
										 |  |  |     def test_constructors_not_callable(self): | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         kt = type({}.keys()) | 
					
						
							| 
									
										
										
										
											2007-02-10 18:55:06 +00:00
										 |  |  |         self.assertRaises(TypeError, kt, {}) | 
					
						
							|  |  |  |         self.assertRaises(TypeError, kt) | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         it = type({}.items()) | 
					
						
							| 
									
										
										
										
											2007-02-10 18:55:06 +00:00
										 |  |  |         self.assertRaises(TypeError, it, {}) | 
					
						
							|  |  |  |         self.assertRaises(TypeError, it) | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         vt = type({}.values()) | 
					
						
							| 
									
										
										
										
											2007-02-10 18:55:06 +00:00
										 |  |  |         self.assertRaises(TypeError, vt, {}) | 
					
						
							|  |  |  |         self.assertRaises(TypeError, vt) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  |     def test_dict_keys(self): | 
					
						
							|  |  |  |         d = {1: 10, "a": "ABC"} | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         keys = d.keys() | 
					
						
							| 
									
										
										
										
											2007-02-10 04:54:19 +00:00
										 |  |  |         self.assertEqual(len(keys), 2) | 
					
						
							| 
									
										
										
										
											2007-02-12 02:23:40 +00:00
										 |  |  |         self.assertEqual(set(keys), {1, "a"}) | 
					
						
							|  |  |  |         self.assertEqual(keys, {1, "a"}) | 
					
						
							|  |  |  |         self.assertNotEqual(keys, {1, "a", "b"}) | 
					
						
							|  |  |  |         self.assertNotEqual(keys, {1, "b"}) | 
					
						
							|  |  |  |         self.assertNotEqual(keys, {1}) | 
					
						
							|  |  |  |         self.assertNotEqual(keys, 42) | 
					
						
							| 
									
										
										
										
											2010-01-19 00:09:57 +00:00
										 |  |  |         self.assertIn(1, keys) | 
					
						
							|  |  |  |         self.assertIn("a", keys) | 
					
						
							|  |  |  |         self.assertNotIn(10, keys) | 
					
						
							|  |  |  |         self.assertNotIn("Z", keys) | 
					
						
							| 
									
										
										
										
											2007-02-12 02:23:40 +00:00
										 |  |  |         self.assertEqual(d.keys(), d.keys()) | 
					
						
							|  |  |  |         e = {1: 11, "a": "def"} | 
					
						
							|  |  |  |         self.assertEqual(d.keys(), e.keys()) | 
					
						
							|  |  |  |         del e["a"] | 
					
						
							|  |  |  |         self.assertNotEqual(d.keys(), e.keys()) | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_dict_items(self): | 
					
						
							|  |  |  |         d = {1: 10, "a": "ABC"} | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         items = d.items() | 
					
						
							| 
									
										
										
										
											2007-02-10 04:54:19 +00:00
										 |  |  |         self.assertEqual(len(items), 2) | 
					
						
							| 
									
										
										
										
											2007-02-12 02:23:40 +00:00
										 |  |  |         self.assertEqual(set(items), {(1, 10), ("a", "ABC")}) | 
					
						
							|  |  |  |         self.assertEqual(items, {(1, 10), ("a", "ABC")}) | 
					
						
							|  |  |  |         self.assertNotEqual(items, {(1, 10), ("a", "ABC"), "junk"}) | 
					
						
							|  |  |  |         self.assertNotEqual(items, {(1, 10), ("a", "def")}) | 
					
						
							|  |  |  |         self.assertNotEqual(items, {(1, 10)}) | 
					
						
							|  |  |  |         self.assertNotEqual(items, 42) | 
					
						
							| 
									
										
										
										
											2010-01-19 00:09:57 +00:00
										 |  |  |         self.assertIn((1, 10), items) | 
					
						
							|  |  |  |         self.assertIn(("a", "ABC"), items) | 
					
						
							|  |  |  |         self.assertNotIn((1, 11), items) | 
					
						
							|  |  |  |         self.assertNotIn(1, items) | 
					
						
							|  |  |  |         self.assertNotIn((), items) | 
					
						
							|  |  |  |         self.assertNotIn((1,), items) | 
					
						
							|  |  |  |         self.assertNotIn((1, 2, 3), items) | 
					
						
							| 
									
										
										
										
											2007-02-12 02:23:40 +00:00
										 |  |  |         self.assertEqual(d.items(), d.items()) | 
					
						
							|  |  |  |         e = d.copy() | 
					
						
							|  |  |  |         self.assertEqual(d.items(), e.items()) | 
					
						
							|  |  |  |         e["a"] = "def" | 
					
						
							|  |  |  |         self.assertNotEqual(d.items(), e.items()) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_dict_mixed_keys_items(self): | 
					
						
							|  |  |  |         d = {(1, 1): 11, (2, 2): 22} | 
					
						
							|  |  |  |         e = {1: 1, 2: 2} | 
					
						
							|  |  |  |         self.assertEqual(d.keys(), e.items()) | 
					
						
							|  |  |  |         self.assertNotEqual(d.items(), e.keys()) | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_dict_values(self): | 
					
						
							|  |  |  |         d = {1: 10, "a": "ABC"} | 
					
						
							| 
									
										
										
										
											2007-02-11 06:12:03 +00:00
										 |  |  |         values = d.values() | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  |         self.assertEqual(set(values), {10, "ABC"}) | 
					
						
							| 
									
										
										
										
											2007-02-10 04:54:19 +00:00
										 |  |  |         self.assertEqual(len(values), 2) | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |     support.run_unittest(DictSetTest) | 
					
						
							| 
									
										
										
										
											2007-02-10 01:11:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     test_main() |