blob: 607d182011bce0bd34e93dc5b3fcc0165e33380a [file] [log] [blame]
Guido van Rossumb90c8482007-02-10 01:11:45 +00001import unittest
2from test import test_support
3
4class DictSetTest(unittest.TestCase):
5
Guido van Rossum3ac67412007-02-10 18:55:06 +00006 def test_constructors_not_callable(self):
Guido van Rossumcc2b0162007-02-11 06:12:03 +00007 kt = type({}.keys())
Guido van Rossum3ac67412007-02-10 18:55:06 +00008 self.assertRaises(TypeError, kt, {})
9 self.assertRaises(TypeError, kt)
Guido van Rossumcc2b0162007-02-11 06:12:03 +000010 it = type({}.items())
Guido van Rossum3ac67412007-02-10 18:55:06 +000011 self.assertRaises(TypeError, it, {})
12 self.assertRaises(TypeError, it)
Guido van Rossumcc2b0162007-02-11 06:12:03 +000013 vt = type({}.values())
Guido van Rossum3ac67412007-02-10 18:55:06 +000014 self.assertRaises(TypeError, vt, {})
15 self.assertRaises(TypeError, vt)
16
Guido van Rossumb90c8482007-02-10 01:11:45 +000017 def test_dict_keys(self):
18 d = {1: 10, "a": "ABC"}
Guido van Rossumcc2b0162007-02-11 06:12:03 +000019 keys = d.keys()
Guido van Rossumb90c8482007-02-10 01:11:45 +000020 self.assertEqual(set(keys), {1, "a"})
Guido van Rossum83825ac2007-02-10 04:54:19 +000021 self.assertEqual(len(keys), 2)
Guido van Rossum3ac67412007-02-10 18:55:06 +000022 self.assert_(1 in keys)
23 self.assert_("a" in keys)
24 self.assert_(10 not in keys)
25 self.assert_("Z" not in keys)
Guido van Rossumb90c8482007-02-10 01:11:45 +000026
27 def test_dict_items(self):
28 d = {1: 10, "a": "ABC"}
Guido van Rossumcc2b0162007-02-11 06:12:03 +000029 items = d.items()
Guido van Rossumb90c8482007-02-10 01:11:45 +000030 self.assertEqual(set(items), {(1, 10), ("a", "ABC")})
Guido van Rossum83825ac2007-02-10 04:54:19 +000031 self.assertEqual(len(items), 2)
Guido van Rossum3ac67412007-02-10 18:55:06 +000032 self.assert_((1, 10) in items)
33 self.assert_(("a", "ABC") in items)
34 self.assert_((1, 11) not in items)
35 self.assert_(1 not in items)
36 self.assert_(() not in items)
37 self.assert_((1,) not in items)
38 self.assert_((1, 2, 3) not in items)
Guido van Rossumb90c8482007-02-10 01:11:45 +000039
40 def test_dict_values(self):
41 d = {1: 10, "a": "ABC"}
Guido van Rossumcc2b0162007-02-11 06:12:03 +000042 values = d.values()
Guido van Rossumb90c8482007-02-10 01:11:45 +000043 self.assertEqual(set(values), {10, "ABC"})
Guido van Rossum83825ac2007-02-10 04:54:19 +000044 self.assertEqual(len(values), 2)
Guido van Rossumb90c8482007-02-10 01:11:45 +000045
46def test_main():
47 test_support.run_unittest(DictSetTest)
48
49if __name__ == "__main__":
50 test_main()