~ubuntu-branches/ubuntu/karmic/python3.0/karmic

« back to all changes in this revision

Viewing changes to Lib/test/test_set.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-02-16 17:18:23 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090216171823-1d5cm5qnnjvmnzzm
Tags: 3.0.1-0ubuntu1
New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import unittest
2
2
from test import support
3
 
from weakref import proxy
 
3
import gc
 
4
import weakref
4
5
import operator
5
6
import copy
6
7
import pickle
219
220
        self.failIf(set('cbs').issuperset('a'))
220
221
 
221
222
    def test_pickling(self):
222
 
        for i in (0, 1, 2):
 
223
        for i in range(pickle.HIGHEST_PROTOCOL + 1):
223
224
            p = pickle.dumps(self.s, i)
224
225
            dup = pickle.loads(p)
225
226
            self.assertEqual(self.s, dup, "%s != %s" % (self.s, dup))
323
324
        self.assertEqual(sum(elem.hash_count for elem in d), n)
324
325
        self.assertEqual(d3, dict.fromkeys(d, 123))
325
326
 
 
327
    def test_container_iterator(self):
 
328
        # Bug #3680: tp_traverse was not implemented for set iterator object
 
329
        class C(object):
 
330
            pass
 
331
        obj = C()
 
332
        ref = weakref.ref(obj)
 
333
        container = set([obj, 1])
 
334
        obj.x = iter(container)
 
335
        del obj, container
 
336
        gc.collect()
 
337
        self.assert_(ref() is None, "Cycle was not collected")
 
338
 
326
339
class TestSet(TestJointOps):
327
340
    thetype = set
328
341
    basetype = set
546
559
 
547
560
    def test_weakref(self):
548
561
        s = self.thetype('gallahad')
549
 
        p = proxy(s)
 
562
        p = weakref.proxy(s)
550
563
        self.assertEqual(str(p), str(s))
551
564
        s = None
552
565
        self.assertRaises(ReferenceError, str, p)
1023
1036
        result = self.set ^ set([8])
1024
1037
        self.assertEqual(result, set([2, 4, 6, 8]))
1025
1038
 
1026
 
    def test_cmp(self):
1027
 
        a, b = set('a'), set('b')
1028
 
        self.assertRaises(TypeError, cmp, a, b)
1029
 
 
1030
 
        # In py3k, this works!
1031
 
        self.assertRaises(TypeError, cmp, a, a)
1032
 
 
1033
 
        self.assertRaises(TypeError, cmp, a, 12)
1034
 
        self.assertRaises(TypeError, cmp, "abc", a)
1035
 
 
1036
1039
#==============================================================================
1037
1040
 
1038
1041
class TestUpdateOps(unittest.TestCase):