Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Side by Side Diff: third_party/buildbot_7_12/buildbot/test/test_persistent_queue.py

Issue 12207158: Bye bye buildbot 0.7.12. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # -*- test-case-name: buildbot.test.test_persistent_queue -*-
2
3 import os
4 import shutil
5 from twisted.trial import unittest
6
7 from buildbot.status.persistent_queue import DequeMemoryQueue, DiskQueue, \
8 IQueue, ListMemoryQueue, MemoryQueue, PersistentQueue, WriteFile
9
10 class test_Queues(unittest.TestCase):
11 def setUp(self):
12 if os.path.isdir('fake_dir'):
13 shutil.rmtree('fake_dir')
14
15 def tearDown(self):
16 if os.path.isdir('fake_dir'):
17 self.assertEqual([], os.listdir('fake_dir'))
18
19 def testQueued(self):
20 # Verify behavior when starting up with queued items on disk.
21 os.mkdir('fake_dir')
22 WriteFile(os.path.join('fake_dir', '3'), 'foo3')
23 WriteFile(os.path.join('fake_dir', '5'), 'foo5')
24 WriteFile(os.path.join('fake_dir', '8'), 'foo8')
25 queue = PersistentQueue(MemoryQueue(3),
26 DiskQueue('fake_dir', 5, pickleFn=str, unpickleFn=str))
27 self.assertEqual(['foo3', 'foo5', 'foo8'], queue.items())
28 self.assertEqual(3, queue.nbItems())
29 self.assertEqual(['foo3', 'foo5', 'foo8'], queue.popChunk())
30
31 def _test_helper(self, q):
32 self.assertTrue(IQueue.providedBy(q))
33 self.assertEqual(8, q.maxItems())
34 self.assertEqual(0, q.nbItems())
35 self.assertEqual([], q.items())
36
37 for i in range(4):
38 self.assertEqual(None, q.pushItem(i), str(i))
39 self.assertEqual(i + 1, q.nbItems(), str(i))
40 self.assertEqual([0, 1, 2, 3], q.items())
41 self.assertEqual(4, q.nbItems())
42 if isinstance(q, PersistentQueue):
43 self.assertEqual([0, 1, 2], q.primaryQueue.items())
44 self.assertEqual([3], q.secondaryQueue.items())
45
46 self.assertEqual(None, q.save())
47 self.assertEqual([0, 1, 2, 3], q.items())
48 self.assertEqual(4, q.nbItems())
49 if isinstance(q, PersistentQueue):
50 self.assertEqual([], q.primaryQueue.items())
51 self.assertEqual([0, 1, 2, 3], q.secondaryQueue.items())
52
53 for i in range(4):
54 self.assertEqual(None, q.pushItem(i + 4), str(i + 4))
55 self.assertEqual(i + 5, q.nbItems(), str(i + 4))
56 self.assertEqual([0, 1, 2, 3, 4, 5, 6, 7], q.items())
57 self.assertEqual(8, q.nbItems())
58 if isinstance(q, PersistentQueue):
59 self.assertEqual([0, 1, 2], q.primaryQueue.items())
60 self.assertEqual([3, 4, 5, 6, 7], q.secondaryQueue.items())
61
62 self.assertEqual(0, q.pushItem(8))
63 self.assertEqual(8, q.nbItems())
64 self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8], q.items())
65 if isinstance(q, PersistentQueue):
66 self.assertEqual([1, 2, 3], q.primaryQueue.items())
67 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
68
69 self.assertEqual([1, 2], q.popChunk(2))
70 self.assertEqual([3, 4, 5, 6, 7, 8], q.items())
71 self.assertEqual(6, q.nbItems())
72 if isinstance(q, PersistentQueue):
73 self.assertEqual([3], q.primaryQueue.items())
74 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
75
76 self.assertEqual([3], q.popChunk(1))
77 self.assertEqual([4, 5, 6, 7, 8], q.items())
78 self.assertEqual(5, q.nbItems())
79 if isinstance(q, PersistentQueue):
80 self.assertEqual([], q.primaryQueue.items())
81 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
82
83 self.assertEqual(None, q.save())
84 self.assertEqual(5, q.nbItems())
85 self.assertEqual([4, 5, 6, 7, 8], q.items())
86 if isinstance(q, PersistentQueue):
87 self.assertEqual([], q.primaryQueue.items())
88 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
89
90 self.assertEqual(None, q.insertBackChunk([2, 3]))
91 self.assertEqual([2, 3, 4, 5, 6, 7, 8], q.items())
92 self.assertEqual(7, q.nbItems())
93 if isinstance(q, PersistentQueue):
94 self.assertEqual([2, 3], q.primaryQueue.items())
95 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
96
97 self.assertEqual([0], q.insertBackChunk([0, 1]))
98 self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8], q.items())
99 self.assertEqual(8, q.nbItems())
100 if isinstance(q, PersistentQueue):
101 self.assertEqual([1, 2, 3], q.primaryQueue.items())
102 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
103
104 self.assertEqual([10, 11], q.insertBackChunk([10, 11]))
105 self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8], q.items())
106 self.assertEqual(8, q.nbItems())
107 if isinstance(q, PersistentQueue):
108 self.assertEqual([1, 2, 3], q.primaryQueue.items())
109 self.assertEqual([4, 5, 6, 7, 8], q.secondaryQueue.items())
110
111 self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8], q.popChunk(8))
112 self.assertEqual([], q.items())
113 self.assertEqual(0, q.nbItems())
114 if isinstance(q, PersistentQueue):
115 self.assertEqual([], q.primaryQueue.items())
116 self.assertEqual([], q.secondaryQueue.items())
117
118 self.assertEqual([], q.popChunk())
119 self.assertEqual(0, q.nbItems())
120 if isinstance(q, PersistentQueue):
121 self.assertEqual([], q.primaryQueue.items())
122 self.assertEqual([], q.secondaryQueue.items())
123
124 def testListMemoryQueue(self):
125 self._test_helper(ListMemoryQueue(maxItems=8))
126
127 def testDequeMemoryQueue(self):
128 # Will fail on python 2.3.
129 self._test_helper(DequeMemoryQueue(maxItems=8))
130
131 def testDiskQueue(self):
132 self._test_helper(DiskQueue('fake_dir', maxItems=8))
133
134 def testPersistentQueue(self):
135 self._test_helper(PersistentQueue(MemoryQueue(3),
136 DiskQueue('fake_dir', 5)))
137
138 # vim: set ts=4 sts=4 sw=4 et:
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698