~matsubara/ubuntu/trusty/python-urllib3/bug-1412545

« back to all changes in this revision

Viewing changes to .pc/01_do-not-use-embedded-python-six.patch/test/test_collections.py

  • Committer: Package Import Robot
  • Author(s): Barry Warsaw
  • Date: 2012-11-01 15:31:36 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20121101153136-w2fm02askveqxxkx
Tags: 1.5-0ubuntu1
* New upstream release.  Remaining changes:
  - 01_do-not-use-embedded-python-six.patch: refreshed
  - 02_require-cert-verification.patch: refreshed
  - 03-fix-appenginge.patch: removed

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
        d[5] = '5'
37
37
 
38
38
        # Check state
39
 
        self.assertEqual(list(d.keys()), [0, 2, 3, 4, 5])
40
 
 
41
 
    def test_pruning(self):
42
 
        d = Container(5)
43
 
 
44
 
        for i in xrange(5):
45
 
            d[i] = str(i)
46
 
 
47
 
        # Contend 2 entries for the most-used slot to balloon the heap
48
 
        for i in xrange(100):
49
 
            d.get(i % 2)
50
 
 
51
 
        self.assertTrue(len(d.access_log) <= d.CLEANUP_FACTOR * d._maxsize)
 
39
        self.assertEqual(list(d.keys()), [2, 3, 4, 0, 5])
52
40
 
53
41
    def test_same_key(self):
54
42
        d = Container(5)
57
45
            d['foo'] = i
58
46
 
59
47
        self.assertEqual(list(d.keys()), ['foo'])
60
 
 
61
 
        d._prune_invalidated_entries()
62
 
 
63
 
        self.assertEqual(len(d.access_log), 1)
 
48
        self.assertEqual(len(d), 1)
64
49
 
65
50
    def test_access_ordering(self):
66
51
        d = Container(5)
68
53
        for i in xrange(10):
69
54
            d[i] = True
70
55
 
71
 
        self.assertEqual(d._get_ordered_access_keys(), [9,8,7,6,5])
 
56
        # Keys should be ordered by access time
 
57
        self.assertEqual(list(d.keys()), [5, 6, 7, 8, 9])
72
58
 
73
59
        new_order = [7,8,6,9,5]
74
 
        for k in reversed(new_order):
 
60
        for k in new_order:
75
61
            d[k]
76
62
 
77
 
        self.assertEqual(d._get_ordered_access_keys(), new_order)
 
63
        self.assertEqual(list(d.keys()), new_order)
78
64
 
79
65
    def test_delete(self):
80
66
        d = Container(5)
107
93
 
108
94
        self.assertRaises(KeyError, lambda: d[5])
109
95
 
 
96
    def test_disposal(self):
 
97
        evicted_items = []
 
98
 
 
99
        def dispose_func(arg):
 
100
            # Save the evicted datum for inspection
 
101
            evicted_items.append(arg)
 
102
 
 
103
        d = Container(5, dispose_func=dispose_func)
 
104
        for i in xrange(5):
 
105
            d[i] = i
 
106
        self.assertEqual(list(d.keys()), list(xrange(5)))
 
107
        self.assertEqual(evicted_items, []) # Nothing disposed
 
108
 
 
109
        d[5] = 5
 
110
        self.assertEqual(list(d.keys()), list(xrange(1, 6)))
 
111
        self.assertEqual(evicted_items, [0])
 
112
 
 
113
        del d[1]
 
114
        self.assertEqual(evicted_items, [0, 1])
 
115
 
 
116
        d.clear()
 
117
        self.assertEqual(evicted_items, [0, 1, 2, 3, 4, 5])
 
118
 
 
119
    def test_iter(self):
 
120
        d = Container()
 
121
 
 
122
        with self.assertRaises(NotImplementedError):
 
123
            for i in d:
 
124
                self.fail("Iteration shouldn't be implemented.")
110
125
 
111
126
if __name__ == '__main__':
112
127
    unittest.main()