Merge lp:~nataliabidart/ubuntuone-client/yield-around into lp:ubuntuone-client
- yield-around
- Merge into trunk
Proposed by
Natalia Bidart
Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Approved by: | Natalia Bidart | ||||||||
Approved revision: | 838 | ||||||||
Merged at revision: | 836 | ||||||||
Proposed branch: | lp:~nataliabidart/ubuntuone-client/yield-around | ||||||||
Merge into: | lp:ubuntuone-client | ||||||||
Diff against target: |
2089 lines (+383/-282) 10 files modified
tests/eventlog/test_zg_listener.py (+9/-7) tests/platform/linux/test_dbus.py (+150/-106) tests/platform/linux/test_filesystem_notifications.py (+14/-7) tests/platform/linux/test_tools.py (+4/-3) tests/syncdaemon/test_eq_inotify.py (+10/-7) tests/syncdaemon/test_fsm.py (+113/-84) tests/syncdaemon/test_localrescan.py (+61/-44) tests/syncdaemon/test_status_listener.py (+5/-5) tests/syncdaemon/test_sync.py (+8/-9) tests/syncdaemon/test_u1sdtool.py (+9/-10) |
||||||||
To merge this branch: | bzr merge lp:~nataliabidart/ubuntuone-client/yield-around | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Roberto Alsina (community) | Approve | ||
Eric Casteleijn (community) | Approve | ||
Review via email: mp+48504@code.launchpad.net |
Description of the change
To post a comment you must log in.
- 837. By Natalia Bidart
-
Merged trunk in.
- 838. By Natalia Bidart
-
ZG tests should also yield on vm.add_share.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'tests/eventlog/test_zg_listener.py' |
2 | --- tests/eventlog/test_zg_listener.py 2011-01-28 15:23:20 +0000 |
3 | +++ tests/eventlog/test_zg_listener.py 2011-02-03 17:29:42 +0000 |
4 | @@ -213,7 +213,7 @@ |
5 | self.main.fs.set_node_id(path, sample_node_id) |
6 | share = Shared(path=path, volume_id=sample_share_id, |
7 | node_id=sample_node_id, other_username=fake_username) |
8 | - self.vm.add_shared(share) |
9 | + yield self.vm.add_shared(share) |
10 | |
11 | def fake_delete_share(share_id): |
12 | """Fake delete_share.""" |
13 | @@ -250,6 +250,7 @@ |
14 | self.assertEqual(other_user.manifestation, |
15 | MANIFESTATION_U1_CONTACT_DATA_OBJECT) |
16 | |
17 | + @defer.inlineCallbacks |
18 | def test_share_accepted_is_logged(self): |
19 | """Test that an accepted share event is logged.""" |
20 | # initialize the the root |
21 | @@ -260,7 +261,7 @@ |
22 | share_path = os.path.join(self.shares_dir, 'fake_share') |
23 | share = Share(path=share_path, volume_id='volume_id', node_id="node_id", |
24 | other_username=fake_username) |
25 | - self.vm.add_share(share) |
26 | + yield self.vm.add_share(share) |
27 | |
28 | self.assertEqual(len(self.listener.zg.events), 1) |
29 | event = self.listener.zg.events[0] |
30 | @@ -300,7 +301,8 @@ |
31 | fake_username, |
32 | u'visible_name', 'Read') |
33 | |
34 | - self.main.vm.add_share(Share.from_notify_holder(holder, share_path)) |
35 | + share = Share.from_notify_holder(holder, share_path) |
36 | + yield self.main.vm.add_share(share) |
37 | self._listen_for('VM_VOLUME_DELETED', d.callback, 1, collect=True) |
38 | self.main.event_q.push('SV_SHARE_DELETED', share_id=holder.share_id) |
39 | yield d |
40 | @@ -1092,8 +1094,8 @@ |
41 | public_url = 'http://example.com/foo.mp3' |
42 | |
43 | share_path = os.path.join(self.shares_dir, 'share') |
44 | - self.main.vm.add_share(Share(path=share_path, volume_id='share', |
45 | - other_username='other username')) |
46 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share', |
47 | + other_username='other username')) |
48 | path = os.path.join(share_path, "foo.mp3") |
49 | self.main.fs.create(path, str(share_id)) |
50 | self.main.fs.set_node_id(path, str(node_id)) |
51 | @@ -1132,8 +1134,8 @@ |
52 | public_url = 'http://example.com/foo.mp3' |
53 | |
54 | share_path = os.path.join(self.shares_dir, 'share') |
55 | - self.main.vm.add_share(Share(path=share_path, volume_id='share', |
56 | - other_username='other username')) |
57 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share', |
58 | + other_username='other username')) |
59 | path = os.path.join(share_path, "foo.mp3") |
60 | self.main.fs.create(path, str(share_id)) |
61 | self.main.fs.set_node_id(path, str(node_id)) |
62 | |
63 | === modified file 'tests/platform/linux/test_dbus.py' |
64 | --- tests/platform/linux/test_dbus.py 2011-02-02 13:10:59 +0000 |
65 | +++ tests/platform/linux/test_dbus.py 2011-02-03 17:29:42 +0000 |
66 | @@ -424,10 +424,11 @@ |
67 | |
68 | return d |
69 | |
70 | + @defer.inlineCallbacks |
71 | def test_get_metadata_path(self): |
72 | """Test the FileSystem Object, getting MD by path.""" |
73 | share_path = os.path.join(self.shares_dir, 'share') |
74 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
75 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
76 | path = os.path.join(share_path, "foo") |
77 | self.fs_manager.create(path, "share") |
78 | self.fs_manager.set_node_id(path, "node_id") |
79 | @@ -446,12 +447,13 @@ |
80 | client = DBusClient(self.bus, '/filesystem', DBUS_IFACE_FS_NAME) |
81 | client.call_method('get_metadata', path, reply_handler=handler, |
82 | error_handler=self.error_handler) |
83 | - return d |
84 | + yield d |
85 | |
86 | + @defer.inlineCallbacks |
87 | def test_get_metadata_path_symlink(self): |
88 | """Test the FileSystem Object, getting MD by path in a symlink.""" |
89 | share_path = os.path.join(self.shares_dir, 'share') |
90 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
91 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
92 | path = os.path.join(share_path, "foo") |
93 | symlink_path = os.path.join(self.shares_dir, "share_symlink") |
94 | share_context = self.main.fs._enable_share_write('share', |
95 | @@ -468,7 +470,8 @@ |
96 | |
97 | def callback(result): |
98 | """Callback to check the result.""" |
99 | - self.assertEquals(os.path.join(symlink_path, 'foo'), str(result['path'])) |
100 | + self.assertEquals(os.path.join(symlink_path, 'foo'), |
101 | + str(result['path'])) |
102 | self.assertEquals('share', result['share_id']) |
103 | self.assertEquals('node_id', result['node_id']) |
104 | |
105 | @@ -477,12 +480,13 @@ |
106 | client.call_method('get_metadata', os.path.join(symlink_path, 'foo'), |
107 | reply_handler=handler, |
108 | error_handler=self.error_handler) |
109 | - return d |
110 | + yield d |
111 | |
112 | + @defer.inlineCallbacks |
113 | def test_get_metadata_share_node(self): |
114 | """Test the FileSystem Object, getting MD by share and node.""" |
115 | share_path = os.path.join(self.shares_dir, 'share') |
116 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
117 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
118 | path = os.path.join(share_path, "foo") |
119 | self.fs_manager.create(path, "share") |
120 | self.fs_manager.set_node_id(path, "node_id") |
121 | @@ -502,7 +506,7 @@ |
122 | client.call_method('get_metadata_by_node', 'share', 'node_id', |
123 | reply_handler=handler, |
124 | error_handler=self.error_handler) |
125 | - return d |
126 | + yield d |
127 | |
128 | def test_push_event(self): |
129 | """Test the exposed method: push_event.""" |
130 | @@ -540,6 +544,7 @@ |
131 | self.event_q.add_empty_event_queue_callback(empty_queue_cb) |
132 | return push_deferred |
133 | |
134 | + @defer.inlineCallbacks |
135 | def test_waiting_content(self): |
136 | """Test Status.waiting_content. |
137 | |
138 | @@ -552,7 +557,8 @@ |
139 | |
140 | # prepare the VM so it lies for us |
141 | share_path = os.path.join(self.shares_dir, 'share') |
142 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
143 | + share = Share(path=share_path, volume_id='share_id') |
144 | + yield self.main.vm.add_share(share) |
145 | b_path = os.path.join(share_path, "path_b") |
146 | c_path = os.path.join(share_path, "path_c") |
147 | self.fs_manager.create(b_path, "share_id") |
148 | @@ -582,13 +588,15 @@ |
149 | client.call_method('waiting_content', |
150 | reply_handler=waiting_handler, |
151 | error_handler=self.error_handler) |
152 | - return d |
153 | + yield d |
154 | |
155 | + @defer.inlineCallbacks |
156 | def test_waiting_metadata(self): |
157 | """Test Status.waiting_metadata with fake data in the AQ.""" |
158 | # prepare the VM so it lies for us |
159 | share_path = os.path.join(self.shares_dir, 'share') |
160 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
161 | + share = Share(path=share_path, volume_id='share_id') |
162 | + yield self.main.vm.add_share(share) |
163 | b_path = os.path.join(share_path, "path_b") |
164 | c_path = os.path.join(share_path, "path_c") |
165 | d_path = os.path.join(share_path, "path_d") |
166 | @@ -635,15 +643,17 @@ |
167 | client.call_method('waiting_metadata', |
168 | reply_handler=waiting_handler, |
169 | error_handler=self.error_handler) |
170 | - return d |
171 | + yield d |
172 | |
173 | + @defer.inlineCallbacks |
174 | def test_get_metadata_and_quick_tree_not_synced(self): |
175 | """Test Status.get_metadata_and_quick_tree_status. |
176 | |
177 | Fake data in the AQ is used. |
178 | """ |
179 | share_path = os.path.join(self.shares_dir, 'share') |
180 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
181 | + share = Share(path=share_path, volume_id='share') |
182 | + yield self.main.vm.add_share(share) |
183 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
184 | self.fs_manager.create(path, "share") |
185 | self.fs_manager.set_node_id(path, "node_id") |
186 | @@ -669,15 +679,16 @@ |
187 | client.call_method('get_metadata_and_quick_tree_synced', |
188 | path, reply_handler=handler, |
189 | error_handler=self.error_handler) |
190 | - return d |
191 | + yield d |
192 | |
193 | + @defer.inlineCallbacks |
194 | def test_get_metadata_and_quick_tree_no_blow_up_kthxbye(self): |
195 | """Test Status.get_metadata_and_quick_tree_status. |
196 | |
197 | Fake data in the AQ is used. |
198 | """ |
199 | share_path = os.path.join(self.shares_dir, 'share') |
200 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
201 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
202 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
203 | self.fs_manager.create(path, "share") |
204 | self.fs_manager.set_node_id(path, "node_id") |
205 | @@ -704,15 +715,16 @@ |
206 | client.call_method('get_metadata_and_quick_tree_synced', |
207 | path, reply_handler=handler, |
208 | error_handler=self.error_handler) |
209 | - return d |
210 | + yield d |
211 | |
212 | + @defer.inlineCallbacks |
213 | def test_get_metadata_and_quick_tree_not_synced_2(self): |
214 | """Test Status.get_metadata_and_quick_tree_status. |
215 | |
216 | Fake data in the AQ is used. |
217 | """ |
218 | share_path = os.path.join(self.shares_dir, 'share') |
219 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
220 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
221 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
222 | self.fs_manager.create(path, "share") |
223 | self.fs_manager.set_node_id(path, "node_id") |
224 | @@ -738,13 +750,14 @@ |
225 | client.call_method('get_metadata_and_quick_tree_synced', |
226 | path, reply_handler=handler, |
227 | error_handler=self.error_handler) |
228 | - return d |
229 | + yield d |
230 | |
231 | + @defer.inlineCallbacks |
232 | def test_get_metadata_and_quick_tree_synced(self): |
233 | """Test Status.get_metadata_and_quick_tree_status |
234 | without fake data in the AQ.""" |
235 | share_path = os.path.join(self.shares_dir, 'share') |
236 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
237 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
238 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
239 | self.fs_manager.create(path, "share") |
240 | self.fs_manager.set_node_id(path, "node_id") |
241 | @@ -766,13 +779,14 @@ |
242 | client.call_method('get_metadata_and_quick_tree_synced', |
243 | path, reply_handler=handler, |
244 | error_handler=self.error_handler) |
245 | - return d |
246 | + yield d |
247 | |
248 | + @defer.inlineCallbacks |
249 | def test_get_metadata_and_quick_tree_synced_symlink(self): |
250 | """Test Status.get_metadata_and_quick_tree_status |
251 | without fake data in the AQ.""" |
252 | share_path = os.path.join(self.shares_dir, 'share') |
253 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
254 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
255 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
256 | self.fs_manager.create(path, "share") |
257 | self.fs_manager.set_node_id(path, "node_id") |
258 | @@ -801,7 +815,7 @@ |
259 | client.call_method('get_metadata_and_quick_tree_synced', |
260 | expected_path, reply_handler=handler, |
261 | error_handler=self.error_handler) |
262 | - return d |
263 | + yield d |
264 | |
265 | def test_content_queue_added(self): |
266 | """Test the signal because a command was added to the queue.""" |
267 | @@ -831,10 +845,12 @@ |
268 | self.main.event_q.push('SYS_QUEUE_REMOVED', FakeCommand()) |
269 | return d |
270 | |
271 | + @defer.inlineCallbacks |
272 | def test_current_downloads(self): |
273 | """Test Status.current_downloads with fake data in the AQ.""" |
274 | share_path = os.path.join(self.shares_dir, 'share') |
275 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
276 | + share = Share(path=share_path, volume_id='share_id') |
277 | + yield self.main.vm.add_share(share) |
278 | down_path = os.path.join(share_path, "down_path") |
279 | self.fs_manager.create(down_path, "share_id") |
280 | self.fs_manager.set_node_id(down_path, "node_id") |
281 | @@ -853,12 +869,14 @@ |
282 | client.call_method('current_downloads', |
283 | reply_handler=downloads_handler, |
284 | error_handler=self.error_handler) |
285 | - return d |
286 | + yield d |
287 | |
288 | + @defer.inlineCallbacks |
289 | def test_current_uploads(self): |
290 | """Test Status.current_uploads with fake data in the AQ.""" |
291 | share_path = os.path.join(self.shares_dir, 'share') |
292 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
293 | + share = Share(path=share_path, volume_id='share_id') |
294 | + yield self.main.vm.add_share(share) |
295 | up_path = os.path.join(share_path, "up_path") |
296 | self.fs_manager.create(up_path, "share_id") |
297 | self.fs_manager.set_node_id(up_path, "node_id") |
298 | @@ -877,7 +895,7 @@ |
299 | |
300 | client.call_method('current_uploads', reply_handler=uploads_handler, |
301 | error_handler=self.error_handler) |
302 | - return d |
303 | + yield d |
304 | |
305 | def test_current_uploads_with_marker(self): |
306 | """Test Status.current_uploads with fake data in the AQ.""" |
307 | @@ -895,17 +913,20 @@ |
308 | error_handler=self.error_handler) |
309 | return d |
310 | |
311 | + @defer.inlineCallbacks |
312 | def test_two_current_downloads(self): |
313 | """Test Status.current_downloads with fake data in the AQ.""" |
314 | share_path = os.path.join(self.shares_dir, 'share') |
315 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
316 | + share = Share(path=share_path, volume_id='share_id') |
317 | + yield self.main.vm.add_share(share) |
318 | down_path = os.path.join(share_path, "down_path") |
319 | self.fs_manager.create(down_path, "share_id") |
320 | self.fs_manager.set_node_id(down_path, "node_id") |
321 | self.action_q.downloading[('share_id', 'node_id')] = dict( |
322 | deflated_size=10, size=100, n_bytes_read=8) |
323 | share1_path = os.path.join(self.shares_dir, 'share1') |
324 | - self.main.vm.add_share(Share(path=share1_path, volume_id='share_id_1')) |
325 | + share1 = Share(path=share1_path, volume_id='share_id_1') |
326 | + yield self.main.vm.add_share(share1) |
327 | down_path_1 = os.path.join(share1_path, "down_path_1") |
328 | self.fs_manager.create(down_path_1, "share_id_1") |
329 | self.fs_manager.set_node_id(down_path_1, "node_id_1") |
330 | @@ -927,19 +948,22 @@ |
331 | client.call_method('current_downloads', |
332 | reply_handler=downloads_handler, |
333 | error_handler=self.error_handler) |
334 | - return d |
335 | + yield d |
336 | |
337 | + @defer.inlineCallbacks |
338 | def test_two_current_uploads(self): |
339 | """Test Status.current_uploads with fake data in the AQ.""" |
340 | share_path = os.path.join(self.shares_dir, 'share') |
341 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
342 | + share = Share(path=share_path, volume_id='share_id') |
343 | + yield self.main.vm.add_share(share) |
344 | up_path = os.path.join(share_path, "up_path") |
345 | self.fs_manager.create(up_path, "share_id") |
346 | self.fs_manager.set_node_id(up_path, "node_id") |
347 | self.action_q.uploading[('share_id', 'node_id')] = dict( |
348 | deflated_size=100, n_bytes_written=10) |
349 | share1_path = os.path.join(self.shares_dir, 'share1') |
350 | - self.main.vm.add_share(Share(path=share1_path, volume_id='share_id_1')) |
351 | + share1 = Share(path=share1_path, volume_id='share_id_1') |
352 | + yield self.main.vm.add_share(share1) |
353 | up_path_1 = os.path.join(share1_path, "up_path_1") |
354 | self.fs_manager.create(up_path_1, "share_id_1") |
355 | self.fs_manager.set_node_id(up_path_1, "node_id_1") |
356 | @@ -961,12 +985,14 @@ |
357 | |
358 | client.call_method('current_uploads', reply_handler=uploads_handler, |
359 | error_handler=self.error_handler) |
360 | - return d |
361 | + yield d |
362 | |
363 | + @defer.inlineCallbacks |
364 | def test_current_downloads_deflated_size_NA(self): |
365 | """Test Status.current_downloads with fake data in the AQ.""" |
366 | share_path = os.path.join(self.shares_dir, 'share') |
367 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
368 | + share = Share(path=share_path, volume_id='share_id') |
369 | + yield self.main.vm.add_share(share) |
370 | down_path = os.path.join(share_path, "down_path") |
371 | self.fs_manager.create(down_path, "share_id") |
372 | self.fs_manager.set_node_id(down_path, "node_id") |
373 | @@ -984,12 +1010,14 @@ |
374 | client.call_method('current_downloads', |
375 | reply_handler=downloads_handler, |
376 | error_handler=self.error_handler) |
377 | - return d |
378 | + yield d |
379 | |
380 | + @defer.inlineCallbacks |
381 | def test_current_uploads_deflated_size_NA(self): |
382 | """Test Status.current_uploads with fake data in the AQ.""" |
383 | share_path = os.path.join(self.shares_dir, 'share') |
384 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
385 | + share = Share(path=share_path, volume_id='share_id') |
386 | + yield self.main.vm.add_share(share) |
387 | up_path = os.path.join(share_path, "up_path") |
388 | self.fs_manager.create(up_path, "share_id") |
389 | self.fs_manager.set_node_id(up_path, "node_id") |
390 | @@ -1007,7 +1035,7 @@ |
391 | |
392 | client.call_method('current_uploads', reply_handler=uploads_handler, |
393 | error_handler=self.error_handler) |
394 | - return d |
395 | + yield d |
396 | |
397 | def test_nm_signals(self): |
398 | """Test that NM signals are received and handled properly.""" |
399 | @@ -1036,11 +1064,13 @@ |
400 | self.event_q.add_empty_event_queue_callback(empty_queue_cb) |
401 | return d |
402 | |
403 | + @defer.inlineCallbacks |
404 | def test_get_shares(self): |
405 | """Test Shares.get_shares method.""" |
406 | share_path = os.path.join(self.main.shares_dir, 'share') |
407 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id', |
408 | - access_level='Read', accepted=False)) |
409 | + share = Share(path=share_path, volume_id='share_id', |
410 | + access_level='Read', accepted=False) |
411 | + yield self.main.vm.add_share(share) |
412 | client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME) |
413 | d = defer.Deferred() |
414 | def check(shares): |
415 | @@ -1056,19 +1086,21 @@ |
416 | self.assertEquals('share_id', str(share['volume_id'])) |
417 | self.assertEquals(share_path, str(share['path'])) |
418 | self.assertEquals('Read', str(share['access_level'])) |
419 | - self.assertEquals('False', str(share['accepted'])) |
420 | + self.assertEquals('', str(share['accepted'])) |
421 | |
422 | def shares_handler(shares): |
423 | d.callback(shares) |
424 | |
425 | client.call_method('get_shares', reply_handler=shares_handler, |
426 | error_handler=self.error_handler) |
427 | - return d |
428 | + d.addCallback(check) |
429 | + yield d |
430 | |
431 | + @defer.inlineCallbacks |
432 | def test_accept_share(self): |
433 | """Test the accept_share method in dbus_interface.Share.""" |
434 | share_path = os.path.join(self.main.shares_dir, 'share') |
435 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id', |
436 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share_id', |
437 | access_level='Read', accepted=False, |
438 | node_id="node_id")) |
439 | self.assertEquals(False, self.main.vm.shares['share_id'].accepted) |
440 | @@ -1088,12 +1120,13 @@ |
441 | self.assertEquals(True, self.main.vm.shares['share_id'].accepted) |
442 | |
443 | d.addCallback(check) |
444 | - return d |
445 | + yield d |
446 | |
447 | + @defer.inlineCallbacks |
448 | def test_reject_share(self): |
449 | """Test the reject_share method in dbus_interface.Share.""" |
450 | share_path = os.path.join(self.main.shares_dir, 'share') |
451 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id', |
452 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share_id', |
453 | access_level='Read', accepted=False)) |
454 | self.assertEquals(False, self.main.vm.shares['share_id'].accepted) |
455 | client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME) |
456 | @@ -1112,7 +1145,7 @@ |
457 | self.assertEquals(False, self.main.vm.shares['share_id'].accepted) |
458 | |
459 | d.addCallback(check) |
460 | - return d |
461 | + yield d |
462 | |
463 | def test_get_root(self): |
464 | """Check SycnDaemon.get_root exposed method.""" |
465 | @@ -1349,18 +1382,20 @@ |
466 | share = Share(path=share_path, volume_id=str(uuid.uuid4()), |
467 | access_level='Modify', accepted=True, |
468 | node_id=str(uuid.uuid4())) |
469 | - self.main.vm.add_share(share) |
470 | + yield self.main.vm.add_share(share) |
471 | client = DBusClient(self.bus, '/', DBUS_IFACE_SYNC_NAME) |
472 | + |
473 | + rescan_d = defer.Deferred() |
474 | + self.main.action_q.rescan_from_scratch = rescan_d.callback |
475 | + |
476 | d = defer.Deferred() |
477 | - def fake_rescan_from_scratch(volume_id): |
478 | - """Stub method.""" |
479 | - d.callback(volume_id) |
480 | - self.main.action_q.rescan_from_scratch = fake_rescan_from_scratch |
481 | - d.addCallback(self.assertTrue) |
482 | client.call_method('rescan_from_scratch', share.volume_id, |
483 | - reply_handler=lambda _: None, |
484 | + reply_handler=d.callback, |
485 | error_handler=d.errback) |
486 | - vol_id = yield d |
487 | + |
488 | + yield d |
489 | + |
490 | + vol_id = yield rescan_d |
491 | self.assertEqual(vol_id, share.volume_id) |
492 | |
493 | @defer.inlineCallbacks |
494 | @@ -1422,13 +1457,14 @@ |
495 | class DBusInterfaceUnicodeTests(DBusTwistedTestCase): |
496 | """Unicode variant of basic tests to the objects exposed with D-Bus.""" |
497 | |
498 | + @defer.inlineCallbacks |
499 | def test_filesystem_unicode(self): |
500 | """Test the FileSystem Object, registering it to the session bus. |
501 | |
502 | Excercise the API. |
503 | """ |
504 | share_path = os.path.join(self.shares_dir, 'share') |
505 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
506 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
507 | path = os.path.join(share_path, u'ñoño'.encode('utf-8')) |
508 | self.fs_manager.create(path, "share") |
509 | self.fs_manager.set_node_id(path, "node_id") |
510 | @@ -1447,7 +1483,7 @@ |
511 | client = DBusClient(self.bus, '/filesystem', DBUS_IFACE_FS_NAME) |
512 | client.call_method('get_metadata', path, reply_handler=handler, |
513 | error_handler=self.error_handler) |
514 | - return d |
515 | + yield d |
516 | |
517 | def test_create_share_unicode(self): |
518 | """Test share offering.""" |
519 | @@ -1480,6 +1516,7 @@ |
520 | error_handler=self.error_handler) |
521 | return d |
522 | |
523 | + @defer.inlineCallbacks |
524 | def test_get_shared_unicode(self): |
525 | """Test that list_shared method behaves with unicode data.""" |
526 | a_dir = os.path.join(self.root_dir, u'ñoño'.encode('utf-8')) |
527 | @@ -1488,7 +1525,7 @@ |
528 | share = Shared(path=a_dir, volume_id='shared_id', name=u'ñoño_shared', |
529 | access_level='View', other_username=u'test_username', |
530 | node_id='node_id') |
531 | - self.main.vm.add_shared(share) |
532 | + yield self.main.vm.add_shared(share) |
533 | client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME) |
534 | d = defer.Deferred() |
535 | |
536 | @@ -1504,7 +1541,7 @@ |
537 | d.addCallback(check) |
538 | client.call_method('get_shared', |
539 | reply_handler=d.callback, error_handler=d.errback) |
540 | - return d |
541 | + yield d |
542 | |
543 | |
544 | class DBusSignalTest(DBusTwistedTestCase): |
545 | @@ -1823,6 +1860,7 @@ |
546 | node_id='node', path=None, mdid=None) |
547 | return d |
548 | |
549 | + @defer.inlineCallbacks |
550 | def test_share_changed(self): |
551 | """Test the ShareChanged signal.""" |
552 | share_path = os.path.join(self.main.shares_dir, 'share') |
553 | @@ -1831,7 +1869,7 @@ |
554 | u'test_username', |
555 | u'visible_name', 'Write') |
556 | |
557 | - self.main.vm.add_share(Share(path=share_path, |
558 | + yield self.main.vm.add_share(Share(path=share_path, |
559 | volume_id=str(share_holder.share_id), |
560 | node_id=str(share_holder.subtree), |
561 | access_level='Read', accepted=False)) |
562 | @@ -1850,8 +1888,9 @@ |
563 | signal_name='ShareChanged') |
564 | self.signal_receivers.add(match) |
565 | self.main.event_q.push('SV_SHARE_CHANGED', info=share_holder) |
566 | - return d |
567 | + yield d |
568 | |
569 | + @defer.inlineCallbacks |
570 | def test_share_deleted(self): |
571 | """Test the ShareDeleted signal.""" |
572 | share_path = os.path.join(self.main.shares_dir, 'share') |
573 | @@ -1859,15 +1898,11 @@ |
574 | u'fake_share', |
575 | u'test_username', |
576 | u'visible_name', 'Read') |
577 | - |
578 | - self.main.vm.add_share(Share.from_notify_holder(share_holder, share_path)) |
579 | + share = Share.from_notify_holder(share_holder, share_path) |
580 | + yield self.main.vm.add_share(share) |
581 | d = defer.Deferred() |
582 | - def share_handler(share_dict): |
583 | - """Handler for ShareDeletedsignal.""" |
584 | - d.callback(share_dict) |
585 | - |
586 | - match = self.bus.add_signal_receiver(share_handler, |
587 | - signal_name='ShareDeleted') |
588 | + match = self.bus.add_signal_receiver(d.callback, |
589 | + signal_name='ShareDeleted') |
590 | self.signal_receivers.add(match) |
591 | |
592 | def check(share_dict): |
593 | @@ -1888,13 +1923,9 @@ |
594 | self.assertEquals(expected_dict[str(k)], str(v)) |
595 | d.addCallback(check) |
596 | |
597 | - match = self.bus.add_signal_receiver(share_handler, |
598 | - signal_name='ShareDeleted') |
599 | - self.signal_receivers.add(match) |
600 | - |
601 | self.main.event_q.push('SV_SHARE_DELETED', |
602 | share_id=share_holder.share_id) |
603 | - return d |
604 | + yield d |
605 | |
606 | def test_share_created(self): |
607 | """Test the ShareCreated signal.""" |
608 | @@ -1960,6 +1991,7 @@ |
609 | new_generation='new_generation') |
610 | return d |
611 | |
612 | + @defer.inlineCallbacks |
613 | def test_new_share(self): |
614 | """Test the NewShare signal.""" |
615 | share_path = os.path.join(self.main.shares_dir, 'share') |
616 | @@ -1996,9 +2028,10 @@ |
617 | for k, v in share_dict.items(): |
618 | self.assertEquals(expected_dict[str(k)], str(v)) |
619 | d.addCallback(check) |
620 | - self.main.vm.add_share(share) |
621 | - return d |
622 | + yield self.main.vm.add_share(share) |
623 | + yield d |
624 | |
625 | + @defer.inlineCallbacks |
626 | def test_public_access_changed(self): |
627 | """Test the PublicAccessChanged signal.""" |
628 | d = defer.Deferred() |
629 | @@ -2016,7 +2049,7 @@ |
630 | public_url = 'http://example.com' |
631 | |
632 | share_path = os.path.join(self.shares_dir, 'share') |
633 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
634 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
635 | path = os.path.join(share_path, "foo") |
636 | self.fs_manager.create(path, str(share_id)) |
637 | self.fs_manager.set_node_id(path, str(node_id)) |
638 | @@ -2033,8 +2066,9 @@ |
639 | self.event_q.push('AQ_CHANGE_PUBLIC_ACCESS_OK', |
640 | share_id=share_id, node_id=node_id, |
641 | is_public=is_public, public_url=public_url) |
642 | - return d |
643 | + yield d |
644 | |
645 | + @defer.inlineCallbacks |
646 | def test_public_access_change_error(self): |
647 | """Test the PublicAccessChangeError signal.""" |
648 | d = defer.Deferred() |
649 | @@ -2051,7 +2085,7 @@ |
650 | expected_error = 'error message' |
651 | |
652 | share_path = os.path.join(self.shares_dir, 'share') |
653 | - self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
654 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share')) |
655 | path = os.path.join(share_path, "foo") |
656 | self.fs_manager.create(path, str(share_id)) |
657 | self.fs_manager.set_node_id(path, str(node_id)) |
658 | @@ -2067,7 +2101,7 @@ |
659 | self.event_q.push('AQ_CHANGE_PUBLIC_ACCESS_ERROR', |
660 | share_id=share_id, node_id=node_id, |
661 | error=expected_error) |
662 | - return d |
663 | + yield d |
664 | |
665 | def test_root_mismatch(self): |
666 | """Test RootMismatch signal.""" |
667 | @@ -2089,6 +2123,7 @@ |
668 | self.main.vm._got_root('another_root_id') |
669 | return d |
670 | |
671 | + @defer.inlineCallbacks |
672 | def test_public_files_list(self): |
673 | """Test the PublicAccessChanged signal.""" |
674 | d = defer.Deferred() |
675 | @@ -2105,7 +2140,8 @@ |
676 | public_url = 'http://example.com' |
677 | |
678 | share_path = os.path.join(self.shares_dir, 'share') |
679 | - self.main.vm.add_share(Share(path=share_path, volume_id=volume_id)) |
680 | + share = Share(path=share_path, volume_id=volume_id) |
681 | + yield self.main.vm.add_share(share) |
682 | path = os.path.join(share_path, "foo") |
683 | self.fs_manager.create(path, str(volume_id)) |
684 | self.fs_manager.set_node_id(path, str(node_id)) |
685 | @@ -2120,7 +2156,7 @@ |
686 | d.addCallback(check) |
687 | pf = dict(volume_id=volume_id, node_id=node_id, public_url=public_url) |
688 | self.event_q.push('AQ_PUBLIC_FILES_LIST_OK', public_files=[pf]) |
689 | - return d |
690 | + yield d |
691 | |
692 | def test_public_files_list_error(self): |
693 | """Test the PublicFilesListError signal.""" |
694 | @@ -2164,16 +2200,17 @@ |
695 | volume_id=volume_id, free_bytes=123) |
696 | return d |
697 | |
698 | + @defer.inlineCallbacks |
699 | def test_quota_exceeded_for_share(self): |
700 | """Test QuotaExceeded signal for share.""" |
701 | volume_id = 'test this please' |
702 | path = 'test/path/bla' |
703 | name = 'Beatiful Stranger' |
704 | - a_share = Share(volume_id=volume_id, node_id=None, path=path, name=name, |
705 | - other_username=None, other_visible_name=None, |
706 | - accepted=False, access_level='View', free_bytes=None) |
707 | - self.main.vm.add_share(a_share) |
708 | - return self.assert_quota_exceeded(volume_id, _get_share_dict(a_share)) |
709 | + share = Share(volume_id=volume_id, node_id=None, path=path, name=name, |
710 | + other_username=None, other_visible_name=None, |
711 | + accepted=False, access_level='View', free_bytes=None) |
712 | + yield self.main.vm.add_share(share) |
713 | + yield self.assert_quota_exceeded(volume_id, _get_share_dict(share)) |
714 | |
715 | def test_quota_exceeded_for_udf(self): |
716 | """Test QuotaExceeded signal for UDF.""" |
717 | @@ -2972,11 +3009,12 @@ |
718 | 'VM_UDF_CREATE_ERROR', path=path, error="I'm broken") |
719 | return d |
720 | |
721 | + @defer.inlineCallbacks |
722 | def test_delete(self): |
723 | """Test for Folders.delete.""" |
724 | suggested_path = u'~/ñoño' |
725 | udf = self._create_udf(uuid.uuid4(), 'node_id', suggested_path) |
726 | - self.main.vm.add_udf(udf) |
727 | + yield self.main.vm.add_udf(udf) |
728 | d = defer.Deferred() |
729 | def delete_volume(volume_id, path): |
730 | """Fake delete_volume.""" |
731 | @@ -3001,13 +3039,14 @@ |
732 | self.folders_client.call_method('delete', udf.volume_id, |
733 | reply_handler=check_deleted, |
734 | error_handler=self.error_handler) |
735 | - return d |
736 | + yield d |
737 | |
738 | + @defer.inlineCallbacks |
739 | def test_delete_error_signal(self): |
740 | """Test for FolderDeleteError.""" |
741 | suggested_path = u'~/ñoño' |
742 | udf = self._create_udf(uuid.uuid4(), 'node_id', suggested_path) |
743 | - self.main.vm.add_udf(udf) |
744 | + yield self.main.vm.add_udf(udf) |
745 | d = defer.Deferred() |
746 | # patch delete_volume to fail |
747 | def delete_volume(volume_id, path): |
748 | @@ -3026,8 +3065,8 @@ |
749 | self.folders_client.call_method('delete', udf.volume_id, |
750 | reply_handler=lambda *args: None, |
751 | error_handler=self.error_handler) |
752 | - d.addCallback(lambda _: self.main.vm.udf_deleted(udf.volume_id)) |
753 | - return d |
754 | + yield d |
755 | + self.main.vm.udf_deleted(udf.volume_id) |
756 | |
757 | @defer.inlineCallbacks |
758 | def test_delete_error_signal_folder_id(self): |
759 | @@ -3120,36 +3159,38 @@ |
760 | d.addCallback(lambda _: self.main.vm.udf_deleted(udf.volume_id)) |
761 | yield d |
762 | |
763 | + @defer.inlineCallbacks |
764 | def test_refresh_volumes(self): |
765 | """Just check that refresh_volumes method works.""" |
766 | client = DBusClient(self.bus, '/folders', DBUS_IFACE_FOLDERS_NAME) |
767 | + list_volumes_d = defer.Deferred() |
768 | + self.main.action_q.list_volumes = lambda: list_volumes_d.callback(True) |
769 | + |
770 | d = defer.Deferred() |
771 | - def list_volumes(): |
772 | - """Stub list_volumes.""" |
773 | - d.callback(True) |
774 | - self.main.action_q.list_volumes = list_volumes |
775 | client.call_method('refresh_volumes', |
776 | - reply_handler=lambda _: None, |
777 | + reply_handler=d.callback, |
778 | error_handler=self.error_handler) |
779 | - return d |
780 | + yield list_volumes_d |
781 | + yield d |
782 | |
783 | |
784 | class ShareTests(DBusTwistedTestCase): |
785 | """Share specific tests.""" |
786 | |
787 | + @defer.inlineCallbacks |
788 | def test_delete_share(self): |
789 | """Test for Shares.delete_share.""" |
790 | share_path = os.path.join(self.main.shares_dir, 'share') |
791 | share = Share(path=share_path, volume_id='share_id', |
792 | node_id='node_id', accepted=True) |
793 | - self.main.vm.add_share(share) |
794 | + yield self.main.vm.add_share(share) |
795 | d = defer.Deferred() |
796 | def delete_volume(volume_id, path): |
797 | """Fake delete_volume.""" |
798 | self.main.event_q.push("AQ_DELETE_VOLUME_OK", volume_id=volume_id) |
799 | self.main.action_q.delete_volume = delete_volume |
800 | def deleted_handler(info): |
801 | - """FolderDeleted handler.""" |
802 | + """ShareDeleted handler.""" |
803 | self.assertRaises(KeyError, self.main.fs.get_by_path, |
804 | info['path'].decode('utf-8')) |
805 | self.assertRaises(VolumeDoesNotExist, |
806 | @@ -3168,14 +3209,15 @@ |
807 | client.call_method('delete_share', share.volume_id, |
808 | reply_handler=check_deleted, |
809 | error_handler=self.error_handler) |
810 | - return d |
811 | + yield d |
812 | |
813 | + @defer.inlineCallbacks |
814 | def test_delete_share_from_me(self): |
815 | """Test for Shares.delete_share with share from_me.""" |
816 | share_path = os.path.join(self.main.shares_dir, 'share') |
817 | share = Shared(path=share_path, volume_id='share_id', |
818 | node_id='node_id', accepted=True) |
819 | - self.main.vm.add_shared(share) |
820 | + yield self.main.vm.add_shared(share) |
821 | d = defer.Deferred() |
822 | def delete_share(volume_id): |
823 | """Fake delete_volume.""" |
824 | @@ -3193,14 +3235,15 @@ |
825 | client.call_method('delete_share', share.volume_id, |
826 | reply_handler=lambda _: None, |
827 | error_handler=self.error_handler) |
828 | - return d |
829 | + yield d |
830 | |
831 | + @defer.inlineCallbacks |
832 | def test_delete_share_error_signal(self): |
833 | """Test for Shares.delete_share with an error.""" |
834 | share_path = os.path.join(self.main.shares_dir, 'share') |
835 | share = Share(path=share_path, volume_id='share_id', |
836 | node_id='node_id', accepted=True) |
837 | - self.main.vm.add_share(share) |
838 | + yield self.main.vm.add_share(share) |
839 | d = defer.Deferred() |
840 | # patch delete_volume to fail |
841 | def delete_volume(volume_id, path): |
842 | @@ -3209,7 +3252,7 @@ |
843 | volume_id=volume_id, error="I'm broken") |
844 | self.main.action_q.delete_volume = delete_volume |
845 | def deleted_error_handler(info, error): |
846 | - """FolderDeleteError handler.""" |
847 | + """ShareDeleteError handler.""" |
848 | self.assertEquals(info['volume_id'], share.volume_id) |
849 | self.assertEquals(error, "I'm broken") |
850 | d.callback(True) |
851 | @@ -3220,14 +3263,15 @@ |
852 | client.call_method('delete_share', share.volume_id, |
853 | reply_handler=lambda *args: None, |
854 | error_handler=self.error_handler) |
855 | - return d |
856 | + yield d |
857 | |
858 | + @defer.inlineCallbacks |
859 | def test_delete_share_from_me_error(self): |
860 | """Test failure of Shares.delete_share with a share from_me.""" |
861 | share_path = os.path.join(self.main.shares_dir, 'share') |
862 | share = Shared(path=share_path, volume_id='share_id', |
863 | node_id='node_id', accepted=True) |
864 | - self.main.vm.add_shared(share) |
865 | + yield self.main.vm.add_shared(share) |
866 | d = defer.Deferred() |
867 | # patch delete_share to fail |
868 | def delete_share(share_id): |
869 | @@ -3236,7 +3280,7 @@ |
870 | share_id=share_id, error="I'm broken") |
871 | self.patch(self.main.action_q, 'delete_share', delete_share) |
872 | def deleted_error_handler(info, error): |
873 | - """FolderDeleteError handler.""" |
874 | + """ShareDeleteError handler.""" |
875 | self.assertEquals(info['volume_id'], share.volume_id) |
876 | self.assertEquals(error, "I'm broken") |
877 | d.callback(True) |
878 | @@ -3247,14 +3291,14 @@ |
879 | client.call_method('delete_share', share.volume_id, |
880 | reply_handler=lambda *args: None, |
881 | error_handler=self.error_handler) |
882 | - return d |
883 | + yield d |
884 | |
885 | def test_delete_share_from_me_doesnotexist(self): |
886 | """Test failure of Shares.delete_share with a share from_me.""" |
887 | d = defer.Deferred() |
888 | # patch delete_share to fail |
889 | def deleted_error_handler(info, error): |
890 | - """FolderDeleteError handler.""" |
891 | + """ShareDeleteError handler.""" |
892 | self.assertEquals(info['volume_id'], 'missing_share_id') |
893 | self.assertEquals(error, "DOES_NOT_EXIST") |
894 | d.callback(True) |
895 | |
896 | === modified file 'tests/platform/linux/test_filesystem_notifications.py' |
897 | --- tests/platform/linux/test_filesystem_notifications.py 2011-01-20 21:27:24 +0000 |
898 | +++ tests/platform/linux/test_filesystem_notifications.py 2011-02-03 17:29:42 +0000 |
899 | @@ -291,12 +291,13 @@ |
900 | class WatchTests(BaseFSMonitorTestCase): |
901 | """Test the EQ API to add and remove watchs.""" |
902 | |
903 | + @defer.inlineCallbacks |
904 | def _create_udf(self, path): |
905 | """Create an UDF and returns it and the volume""" |
906 | os.makedirs(path) |
907 | udf = volume_manager.UDF("vol_id", "node_id", path.decode('utf-8'), |
908 | path, True) |
909 | - self.vm.add_udf(udf) |
910 | + yield self.vm.add_udf(udf) |
911 | |
912 | def test_add_general_watch(self): |
913 | """Test that general watchs can be added.""" |
914 | @@ -311,11 +312,12 @@ |
915 | # nothing in the udf ancestors watch |
916 | self.assertEqual(self.monitor._ancestors_watchs, {}) |
917 | |
918 | + @defer.inlineCallbacks |
919 | def test_add_watch_on_udf_ancestor(self): |
920 | """Test that ancestors watchs can be added.""" |
921 | # create the udf and add the watch |
922 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
923 | - self._create_udf(path_udf) |
924 | + yield self._create_udf(path_udf) |
925 | path_ancestor = os.path.join(self.home_dir, "path") |
926 | self.monitor.add_watch(path_ancestor) |
927 | |
928 | @@ -327,22 +329,24 @@ |
929 | # nothing in the general watch |
930 | self.assertEqual(self.monitor._general_watchs, {}) |
931 | |
932 | + @defer.inlineCallbacks |
933 | def test_add_watch_on_udf_exact(self): |
934 | """Test adding the watch exactly on UDF.""" |
935 | # create the udf and add the watch |
936 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
937 | - self._create_udf(path_udf) |
938 | + yield self._create_udf(path_udf) |
939 | self.monitor.add_watch(path_udf) |
940 | |
941 | # pylint: disable-msg=W0212 |
942 | self.assertTrue(path_udf in self.monitor._general_watchs) |
943 | self.assertEqual(self.monitor._ancestors_watchs, {}) |
944 | |
945 | + @defer.inlineCallbacks |
946 | def test_add_watch_on_udf_child(self): |
947 | """Test adding the watch inside UDF.""" |
948 | # create the udf and add the watch |
949 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
950 | - self._create_udf(path_udf) |
951 | + yield self._create_udf(path_udf) |
952 | path_ancestor = os.path.join(self.home_dir, "path/to/UDF/inside") |
953 | os.mkdir(path_ancestor) |
954 | self.monitor.add_watch(path_ancestor) |
955 | @@ -364,12 +368,13 @@ |
956 | self.monitor.rm_watch(not_existing_dir) |
957 | self.assertFalse(self.monitor.has_watch(not_existing_dir)) |
958 | |
959 | + @defer.inlineCallbacks |
960 | def test_rm_watch_wrong(self): |
961 | """Test that general watchs can be removed.""" |
962 | # add two types of watchs |
963 | self.monitor.add_watch(self.root_dir) |
964 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
965 | - self._create_udf(path_udf) |
966 | + yield self._create_udf(path_udf) |
967 | path_ancestor = os.path.join(self.home_dir, "path") |
968 | self.monitor.add_watch(path_ancestor) |
969 | |
970 | @@ -388,11 +393,12 @@ |
971 | self.assertEqual(self.monitor._general_watchs, {}) |
972 | self.assertEqual(self.monitor._ancestors_watchs, {}) |
973 | |
974 | + @defer.inlineCallbacks |
975 | def test_rm_watch_ancestor(self): |
976 | """Test that ancestor watchs can be removed.""" |
977 | # create the udf and add the watch |
978 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
979 | - self._create_udf(path_udf) |
980 | + yield self._create_udf(path_udf) |
981 | path_ancestor = os.path.join(self.home_dir, "path") |
982 | self.monitor.add_watch(path_ancestor) |
983 | |
984 | @@ -414,10 +420,11 @@ |
985 | self.monitor.rm_watch(self.root_dir) |
986 | self.assertFalse(self.monitor.has_watch(self.root_dir)) |
987 | |
988 | + @defer.inlineCallbacks |
989 | def test_has_watch_ancestor(self): |
990 | """Test that an ancestor path is watched.""" |
991 | path_udf = os.path.join(self.home_dir, "path/to/UDF") |
992 | - self._create_udf(path_udf) |
993 | + yield self._create_udf(path_udf) |
994 | path_ancestor = os.path.join(self.home_dir, "path") |
995 | |
996 | self.assertFalse(self.monitor.has_watch(path_ancestor)) |
997 | |
998 | === modified file 'tests/platform/linux/test_tools.py' |
999 | --- tests/platform/linux/test_tools.py 2011-01-17 20:14:09 +0000 |
1000 | +++ tests/platform/linux/test_tools.py 2011-02-03 17:29:42 +0000 |
1001 | @@ -48,14 +48,15 @@ |
1002 | self.rmtree(self.home_dir) |
1003 | return DBusTwistedTestCase.tearDown(self) |
1004 | |
1005 | + @defer.inlineCallbacks |
1006 | def create_file(self, path): |
1007 | """ creates a test file in fsm """ |
1008 | share_path = os.path.join(self.shares_dir, 'share_tools') |
1009 | - self.main.vm.add_share(volume_manager.Share(share_path, |
1010 | - volume_id='tools_share_id')) |
1011 | + share = volume_manager.Share(share_path, volume_id='tools_share_id') |
1012 | + yield self.main.vm.add_share(share) |
1013 | self.fs_manager.create(path, "tools_share_id") |
1014 | self.fs_manager.set_node_id(path, "node_id") |
1015 | - return 'tools_share_id', 'node_id' |
1016 | + defer.returnValue(('tools_share_id', 'node_id')) |
1017 | |
1018 | |
1019 | class TestToolsBasic(TestToolsBase): |
1020 | |
1021 | === modified file 'tests/syncdaemon/test_eq_inotify.py' |
1022 | --- tests/syncdaemon/test_eq_inotify.py 2011-01-12 13:30:03 +0000 |
1023 | +++ tests/syncdaemon/test_eq_inotify.py 2011-02-03 17:29:42 +0000 |
1024 | @@ -1745,23 +1745,25 @@ |
1025 | self._deferred.addCallback(check) |
1026 | return self._deferred |
1027 | |
1028 | + @defer.inlineCallbacks |
1029 | def _create_udf(self, vol_id, path): |
1030 | """Create an UDF and returns it and the volume""" |
1031 | os.makedirs(path) |
1032 | udf = volume_manager.UDF(vol_id, "node_id", path.decode('utf-8'), |
1033 | path, True) |
1034 | - self.vm.add_udf(udf) |
1035 | + yield self.vm.add_udf(udf) |
1036 | |
1037 | + @defer.inlineCallbacks |
1038 | def test_move_dir_across_volumes(self): |
1039 | """Dir move between volumes is deletion and creation.""" |
1040 | # base dir 1 |
1041 | base1 = os.path.join(self.home_dir, "dir1") |
1042 | - self._create_udf('vol1', base1) |
1043 | + yield self._create_udf('vol1', base1) |
1044 | self.fs.create(path=base1, share_id='vol1', is_dir=True) |
1045 | |
1046 | # base dir 2 |
1047 | base2 = os.path.join(self.home_dir, "dir2") |
1048 | - self._create_udf('vol2', base2) |
1049 | + yield self._create_udf('vol2', base2) |
1050 | self.fs.create(path=base2, share_id='vol2', is_dir=True) |
1051 | |
1052 | # working stuff |
1053 | @@ -1779,18 +1781,19 @@ |
1054 | |
1055 | # generate the event |
1056 | os.rename(moving1, moving2) |
1057 | - return self._deferred |
1058 | + yield self._deferred |
1059 | |
1060 | + @defer.inlineCallbacks |
1061 | def test_move_file_across_volumes(self): |
1062 | """File ove between volumes is deletion and creation (and write).""" |
1063 | # base dir 1 |
1064 | base1 = os.path.join(self.home_dir, "dir1") |
1065 | - self._create_udf('vol1', base1) |
1066 | + yield self._create_udf('vol1', base1) |
1067 | self.fs.create(path=base1, share_id='vol1', is_dir=True) |
1068 | |
1069 | # base dir 2 |
1070 | base2 = os.path.join(self.home_dir, "dir2") |
1071 | - self._create_udf('vol2', base2) |
1072 | + yield self._create_udf('vol2', base2) |
1073 | self.fs.create(path=base2, share_id='vol2', is_dir=True) |
1074 | |
1075 | # working stuff |
1076 | @@ -1809,7 +1812,7 @@ |
1077 | |
1078 | # generate the event |
1079 | os.rename(moving1, moving2) |
1080 | - return self._deferred |
1081 | + yield self._deferred |
1082 | |
1083 | |
1084 | def test_suite(): |
1085 | |
1086 | === modified file 'tests/syncdaemon/test_fsm.py' |
1087 | --- tests/syncdaemon/test_fsm.py 2011-01-20 21:27:24 +0000 |
1088 | +++ tests/syncdaemon/test_fsm.py 2011-02-03 17:29:42 +0000 |
1089 | @@ -26,6 +26,8 @@ |
1090 | import time |
1091 | import unittest |
1092 | |
1093 | +from twisted.internet import defer |
1094 | + |
1095 | from contrib.testing.testcase import ( |
1096 | BaseTwistedTestCase, |
1097 | FakeVolumeManager, |
1098 | @@ -56,9 +58,21 @@ |
1099 | BROKEN_PICKLE = '\axb80\x02}q\x01(U\x01aU\x04testq\x02U\x01bU\x06brokenq\x03u.' |
1100 | |
1101 | |
1102 | +@defer.inlineCallbacks |
1103 | +def _create_share(share_id, share_name, fsm, shares_dir, access_level='Modify'): |
1104 | + """Create a share.""" |
1105 | + share_path = os.path.join(shares_dir, share_name) |
1106 | + os.makedirs(share_path) |
1107 | + share = Share(path=share_path, volume_id=share_id, |
1108 | + access_level=access_level) |
1109 | + yield fsm.vm.add_share(share) |
1110 | + defer.returnValue(share) |
1111 | + |
1112 | + |
1113 | class FSMTestCase(unittest.TestCase): |
1114 | """ Base test case for FSM """ |
1115 | |
1116 | + @defer.inlineCallbacks |
1117 | def setUp(self): |
1118 | """ Setup the test """ |
1119 | unittest.TestCase.setUp(self) |
1120 | @@ -80,8 +94,7 @@ |
1121 | FakeVolumeManager(self.root_dir), self.db) |
1122 | self.eq = EventQueue(self.fsm) |
1123 | self.fsm.register_eq(self.eq) |
1124 | - self.share = self.create_share('share', 'share_name', |
1125 | - self.fsm, self.shares_dir) |
1126 | + self.share = yield self.create_share('share', 'share_name') |
1127 | self.share_path = self.share.path |
1128 | |
1129 | # add a in-memory logger handler |
1130 | @@ -109,16 +122,17 @@ |
1131 | os.chmod(os.path.join(dirpath, dir), 0777) |
1132 | shutil.rmtree(path) |
1133 | |
1134 | - @staticmethod |
1135 | - def create_share(share_id, share_name, fsm, shares_dir, |
1136 | + @defer.inlineCallbacks |
1137 | + def create_share(self, share_id, share_name, fsm=None, shares_dir=None, |
1138 | access_level='Modify'): |
1139 | - """ creates a share """ |
1140 | - share_path = os.path.join(shares_dir, share_name) |
1141 | - os.makedirs(share_path) |
1142 | - share = Share(path=share_path, volume_id=share_id, |
1143 | - access_level=access_level) |
1144 | - fsm.vm.add_share(share) |
1145 | - return share |
1146 | + """Create a share.""" |
1147 | + if fsm is None: |
1148 | + fsm = self.fsm |
1149 | + if shares_dir is None: |
1150 | + shares_dir = self.shares_dir |
1151 | + share = yield _create_share(share_id, share_name, fsm, shares_dir, |
1152 | + access_level) |
1153 | + defer.returnValue(share) |
1154 | |
1155 | def create_node(self, name, is_dir=False, share=None): |
1156 | """Create a node.""" |
1157 | @@ -162,6 +176,7 @@ |
1158 | self.assertTrue(os.path.exists(fsmdir)) |
1159 | db.shutdown() |
1160 | |
1161 | + @defer.inlineCallbacks |
1162 | def test_complex_startup(self): |
1163 | """Test startup after having data.""" |
1164 | # pylint: disable-msg=W0212 |
1165 | @@ -172,8 +187,8 @@ |
1166 | db = Tritcask(fsmdir) |
1167 | fsm = FileSystemManager(fsmdir, partials_dir, |
1168 | FakeVolumeManager(fsmdir), db) |
1169 | - share = FSMTestCase.create_share('share', 'share_name', |
1170 | - fsm, fsmdir) |
1171 | + share = yield _create_share('share', 'share_name', |
1172 | + fsm=fsm, shares_dir=fsmdir) |
1173 | self.assertEqual(fsm._idx_path, {}) |
1174 | self.assertEqual(fsm._idx_node_id, {}) |
1175 | |
1176 | @@ -299,6 +314,7 @@ |
1177 | md_version = open(os.path.join(self.fsmdir, "metadata_version")).read() |
1178 | self.assertEqual(md_version, METADATA_VERSION) |
1179 | |
1180 | + @defer.inlineCallbacks |
1181 | def test_old_metadata_None(self): |
1182 | """Test old metadata situation, in None.""" |
1183 | # create some stuff |
1184 | @@ -307,8 +323,7 @@ |
1185 | mdid = self.fsm.create(path, "share") |
1186 | self.fsm.set_node_id(path, "uuid") |
1187 | # create a path with the old layout |
1188 | - other_share = self.create_share('share1', 'share1_name', |
1189 | - self.fsm, self.shares_dir) |
1190 | + other_share = yield self.create_share('share1', 'share1_name') |
1191 | share_mdid = self.fsm.create(other_share.path, "share1") |
1192 | self.fsm.set_node_id(other_share.path, "uuid1") |
1193 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1194 | @@ -358,6 +373,7 @@ |
1195 | self.assertFalse(old_path in newfsm._idx_path) |
1196 | db.shutdown() |
1197 | |
1198 | + @defer.inlineCallbacks |
1199 | def test_old_metadata_1(self): |
1200 | """Test old metadata situation, in v1.""" |
1201 | # create some stuff |
1202 | @@ -369,8 +385,7 @@ |
1203 | self.fsm.set_node_id(path2, "uuid2") |
1204 | |
1205 | # create a path with the old layout |
1206 | - other_share = self.create_share('share1', 'share1_name', |
1207 | - self.fsm, self.shares_dir) |
1208 | + other_share = yield self.create_share('share1', 'share1_name') |
1209 | share_mdid = self.fsm.create(other_share.path, "share1") |
1210 | self.fsm.set_node_id(other_share.path, "uuid1") |
1211 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1212 | @@ -423,6 +438,7 @@ |
1213 | self.assertFalse(old_path in newfsm._idx_path) |
1214 | db.shutdown() |
1215 | |
1216 | + @defer.inlineCallbacks |
1217 | def test_old_metadata_2(self): |
1218 | """Test old metadata situation, in v2.""" |
1219 | # create some stuff |
1220 | @@ -430,8 +446,7 @@ |
1221 | mdid = self.fsm.create(path, "share") |
1222 | self.fsm.set_node_id(path, "uuid") |
1223 | # create a path with the old layout |
1224 | - other_share = self.create_share('share1', 'share1_name', |
1225 | - self.fsm, self.shares_dir) |
1226 | + other_share = yield self.create_share('share1', 'share1_name') |
1227 | share_mdid = self.fsm.create(other_share.path, "share1") |
1228 | self.fsm.set_node_id(other_share.path, "uuid1") |
1229 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1230 | @@ -480,6 +495,7 @@ |
1231 | self.assertFalse(old_path in newfsm._idx_path) |
1232 | db.shutdown() |
1233 | |
1234 | + @defer.inlineCallbacks |
1235 | def test_old_metadata_3(self): |
1236 | """Test old metadata situation, in v3.""" |
1237 | # create a path with the old layout and metadata |
1238 | @@ -487,8 +503,7 @@ |
1239 | root_mdid = self.fsm.create(self.root_dir, "") |
1240 | self.fsm.set_node_id(self.root_dir, "uuid") |
1241 | # a share |
1242 | - other_share = self.create_share('share1', 'share1_name', |
1243 | - self.fsm, self.shares_dir) |
1244 | + other_share = yield self.create_share('share1', 'share1_name') |
1245 | share_mdid = self.fsm.create(other_share.path, "share1") |
1246 | self.fsm.set_node_id(other_share.path, "uuid1") |
1247 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1248 | @@ -1263,13 +1278,14 @@ |
1249 | mdobj = self.fsm.get_by_node_id("share", "uuid") |
1250 | self.assertEquals(self.share_path, mdobj.path) |
1251 | |
1252 | + @defer.inlineCallbacks |
1253 | def test_get_all_by_share(self): |
1254 | """ Test that it returns all the mdids in a share. """ |
1255 | # create the shares |
1256 | - share1 = self.create_share('share_id1', 'share_name1', self.fsm, |
1257 | - self.shares_dir, access_level='View') |
1258 | - share2 = self.create_share('share_id2', 'share_name2', self.fsm, |
1259 | - self.shares_dir, access_level='View') |
1260 | + share1 = yield self.create_share('share_id1', 'share_name1', |
1261 | + access_level='View') |
1262 | + share2 = yield self.create_share('share_id2', 'share_name2', |
1263 | + access_level='View') |
1264 | self.fsm.create(share1.path, "share_id1", is_dir=True) |
1265 | self.fsm.set_node_id(share1.path, "uuid1") |
1266 | self.fsm.create(share2.path, "share_id2", is_dir=True) |
1267 | @@ -1330,11 +1346,12 @@ |
1268 | self.assertTrue(mdid7 not in all) |
1269 | self.assertTrue(mdid8 not in all) |
1270 | |
1271 | + @defer.inlineCallbacks |
1272 | def test_get_all_by_share_mixed(self): |
1273 | """Test that it returns all the mdids in a share with mixed nodes.""" |
1274 | # create the shares |
1275 | - share = self.create_share('share_id', 'sharetest', self.fsm, |
1276 | - self.shares_dir, access_level='View') |
1277 | + share = yield self.create_share('share_id', 'sharetest', |
1278 | + access_level='View') |
1279 | self.fsm.create(share.path, "share_id", is_dir=True) |
1280 | self.fsm.set_node_id(share.path, "uuid") |
1281 | |
1282 | @@ -1441,10 +1458,10 @@ |
1283 | os.path.join(self.share.path, 'a', 'b'))]) |
1284 | self.assertEqual(expected, actual) |
1285 | |
1286 | + @defer.inlineCallbacks |
1287 | def test_with_two_shares(self): |
1288 | """Test having 2 shares.""" |
1289 | - second_share = self.create_share('second_share', 'the_second', |
1290 | - self.fsm, self.shares_dir) |
1291 | + second_share = yield self.create_share('second_share', 'the_second') |
1292 | self.create_some_contents(second_share) |
1293 | |
1294 | expected = ['a'] |
1295 | @@ -1452,10 +1469,10 @@ |
1296 | self.fsm.get_mdobjs_in_dir(second_share.path)]) |
1297 | self.assertEqual(expected, actual) |
1298 | |
1299 | + @defer.inlineCallbacks |
1300 | def test_both_shares(self): |
1301 | """Test having 2 shares and asking for mdobjs in shares_dir.""" |
1302 | - second_share = self.create_share('second_share', 'the_second', |
1303 | - self.fsm, self.shares_dir) |
1304 | + second_share = yield self.create_share('second_share', 'the_second') |
1305 | self.create_some_contents(second_share) |
1306 | |
1307 | expected = [] |
1308 | @@ -1750,14 +1767,14 @@ |
1309 | # it has no partial! |
1310 | self.fsm.remove_partial("uuid", "share") |
1311 | |
1312 | + @defer.inlineCallbacks |
1313 | def test_ro_share(self): |
1314 | """Test creating a partial of a RO share. |
1315 | |
1316 | It should leave the partials dir permissions intact. |
1317 | """ |
1318 | - share = self.create_share('ro_share', 'ro_share_name', |
1319 | - self.fsm, self.shares_dir, |
1320 | - access_level='View') |
1321 | + share = yield self.create_share('ro_share', 'ro_share_name', |
1322 | + access_level='View') |
1323 | testdir = os.path.join(share.path, "path") |
1324 | mdid = self.fsm.create(testdir, share.volume_id, is_dir=False) |
1325 | self.fsm.set_node_id(testdir, "uuid") |
1326 | @@ -2638,22 +2655,24 @@ |
1327 | self.fsm.make_dir(mdid) |
1328 | self.assertTrue(os.path.exists(local_dir)) |
1329 | |
1330 | + @defer.inlineCallbacks |
1331 | def test_make_dir_in_ro_share(self): |
1332 | """Also works in a read only share.""" |
1333 | - share = self.create_share('ro_share_id', 'ro', self.fsm, |
1334 | - self.shares_dir, access_level='View') |
1335 | + share = yield self.create_share('ro_share_id', 'ro', |
1336 | + access_level='View') |
1337 | testdir = os.path.join(share.path, "foo") |
1338 | mdid = self.fsm.create(testdir, 'ro_share_id', is_dir=True) |
1339 | self.fsm.make_dir(mdid) |
1340 | self.assertTrue(os.path.exists(testdir)) |
1341 | |
1342 | + @defer.inlineCallbacks |
1343 | def test_make_dir_ro_watch(self): |
1344 | """Don't add the watch nor the mute on a RO share.""" |
1345 | called = [] |
1346 | self.eq.add_watch = lambda p: called.append(p) |
1347 | self.eq.add_to_mute_filter = lambda *a: called.append(a) |
1348 | - share = self.create_share('ro_share_id', 'ro', self.fsm, |
1349 | - self.shares_dir, access_level='View') |
1350 | + share = yield self.create_share('ro_share_id', 'ro', |
1351 | + access_level='View') |
1352 | testdir = os.path.join(share.path, "foo") |
1353 | mdid = self.fsm.create(testdir, 'ro_share_id', is_dir=True) |
1354 | |
1355 | @@ -2862,17 +2881,19 @@ |
1356 | os.chmod(os.path.join(dirpath, file), 0666) |
1357 | FSMTestCase.tearDown(self) |
1358 | |
1359 | + @defer.inlineCallbacks |
1360 | def test_file_ro_share_fail(self): |
1361 | """ Test that manual creation of a file, fails on a ro-share. """ |
1362 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1363 | - self.shares_dir, access_level='View') |
1364 | + share = yield self.create_share('ro_share', 'ro_share_name', |
1365 | + access_level='View') |
1366 | testfile = os.path.join(share.path, "a_file") |
1367 | self.assertRaises(IOError, open, testfile, 'w') |
1368 | |
1369 | + @defer.inlineCallbacks |
1370 | def test_dir_ro_share(self): |
1371 | """ Test that the creation of a file using fsm, works on a ro-share.""" |
1372 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1373 | - self.shares_dir, access_level='View') |
1374 | + share = yield self.create_share('ro_share', 'ro_share_name', |
1375 | + access_level='View') |
1376 | testdir = os.path.join(share.path, "path2") |
1377 | self.fsm.create(testdir, share.volume_id, is_dir=True) |
1378 | self.fsm.set_node_id(testdir, "uuid2") |
1379 | @@ -2882,10 +2903,11 @@ |
1380 | fd.close() |
1381 | self.assertTrue(os.path.exists(testdir)) |
1382 | |
1383 | + @defer.inlineCallbacks |
1384 | def test_file_ro_share(self): |
1385 | """ Test that the creation of a file using fsm, works on a ro-share.""" |
1386 | - self.share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1387 | - self.shares_dir, access_level='View') |
1388 | + self.share = yield self.create_share('ro_share', 'ro_share_name', |
1389 | + access_level='View') |
1390 | testfile = os.path.join(self.share.path, "a_file") |
1391 | self.fsm.create(testfile, self.share.volume_id, is_dir=False) |
1392 | self.fsm.set_node_id(testfile, "uuid3") |
1393 | @@ -2896,10 +2918,11 @@ |
1394 | self.fsm.commit_partial('uuid3', self.share.volume_id, None) |
1395 | self.assertTrue(os.path.exists(testfile)) |
1396 | |
1397 | + @defer.inlineCallbacks |
1398 | def test_delete_dir_ro_share(self): |
1399 | """ Test that fsm is able to delete a dir in a ro.share. """ |
1400 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1401 | - self.shares_dir, access_level='View') |
1402 | + share = yield self.create_share('ro_share', 'ro_share_name', |
1403 | + access_level='View') |
1404 | testdir = os.path.join(share.path, "path2") |
1405 | self.fsm.create(testdir, share.volume_id, is_dir=True) |
1406 | self.fsm.set_node_id(testdir, "uuid2") |
1407 | @@ -2912,10 +2935,11 @@ |
1408 | self.fsm.delete_file(testdir) |
1409 | self.assertFalse(os.path.exists(testdir)) |
1410 | |
1411 | + @defer.inlineCallbacks |
1412 | def test_delete_non_empty_dir_ro_share(self): |
1413 | """Test that fsm is able to delete a non-empty dir in a ro.share.""" |
1414 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1415 | - self.shares_dir, access_level='View') |
1416 | + share = yield self.create_share('ro_share', 'ro_share_name', |
1417 | + access_level='View') |
1418 | testdir = os.path.join(share.path, "path2") |
1419 | mdid = self.fsm.create(testdir, share.volume_id, is_dir=True) |
1420 | self.fsm.set_node_id(testdir, "uuid2") |
1421 | @@ -2941,10 +2965,11 @@ |
1422 | self.assertFalse(os.path.exists(testdir)) |
1423 | self.assertFalse(os.path.exists(testfile)) |
1424 | |
1425 | + @defer.inlineCallbacks |
1426 | def test_delete_non_empty_dir_rw_share(self): |
1427 | """Test that fsm is able to delete a non-empty dir in a rw.share.""" |
1428 | - share = self.create_share('rw_share', 'rw_share_name', self.fsm, |
1429 | - self.shares_dir, access_level='Modify') |
1430 | + share = yield self.create_share('rw_share', 'rw_share_name', |
1431 | + access_level='Modify') |
1432 | testdir = os.path.join(share.path, "path2") |
1433 | mdid = self.fsm.create(testdir, share.volume_id, is_dir=True) |
1434 | self.fsm.set_node_id(testdir, "uuid2") |
1435 | @@ -2970,10 +2995,11 @@ |
1436 | self.assertFalse(os.path.exists(testdir)) |
1437 | self.assertFalse(os.path.exists(testfile)) |
1438 | |
1439 | + @defer.inlineCallbacks |
1440 | def test_delete_non_empty_dir_bad_perms_rw_share(self): |
1441 | """Test that fsm is able to delete a non-empty dir in a rw.share.""" |
1442 | - share = self.create_share('rw_share', 'rw_share_name', self.fsm, |
1443 | - self.shares_dir, access_level='Modify') |
1444 | + share = yield self.create_share('rw_share', 'rw_share_name', |
1445 | + access_level='Modify') |
1446 | testdir = os.path.join(share.path, "path2") |
1447 | mdid = self.fsm.create(testdir, share.volume_id, is_dir=True) |
1448 | self.fsm.set_node_id(testdir, "uuid2") |
1449 | @@ -3001,10 +3027,11 @@ |
1450 | self.assertTrue(os.path.exists(testdir)) |
1451 | self.assertTrue(os.path.exists(testfile)) |
1452 | |
1453 | + @defer.inlineCallbacks |
1454 | def test_delete_file_ro_share(self): |
1455 | """ Test that fsm is able to delete a file in a ro-share. """ |
1456 | - self.share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1457 | - self.shares_dir, access_level='View') |
1458 | + self.share = yield self.create_share('ro_share', 'ro_share_name', |
1459 | + access_level='View') |
1460 | testfile = os.path.join(self.share.path, "a_file") |
1461 | self.fsm.create(testfile, self.share.volume_id, is_dir=False) |
1462 | self.fsm.set_node_id(testfile, "uuid3") |
1463 | @@ -3017,10 +3044,11 @@ |
1464 | self.fsm.delete_file(testfile) |
1465 | self.assertFalse(os.path.exists(testfile)) |
1466 | |
1467 | + @defer.inlineCallbacks |
1468 | def test_move_to_conflict_ro_share(self): |
1469 | """ Test that fsm is able to handle move_to_conflict in a ro-share. """ |
1470 | - self.share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1471 | - self.shares_dir, access_level='View') |
1472 | + self.share = yield self.create_share('ro_share', 'ro_share_name', |
1473 | + access_level='View') |
1474 | testfile = os.path.join(self.share.path, "a_file") |
1475 | file_mdid = self.fsm.create(testfile, self.share.volume_id, |
1476 | is_dir=False) |
1477 | @@ -3034,18 +3062,18 @@ |
1478 | self.fsm.move_to_conflict(file_mdid) |
1479 | self.assertTrue(os.path.exists(testfile + self.fsm.CONFLICT_SUFFIX)) |
1480 | |
1481 | + @defer.inlineCallbacks |
1482 | def test_file_rw_share_no_fail(self): |
1483 | """ Test that manual creation of a file, ona rw-share. """ |
1484 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1485 | - self.shares_dir) |
1486 | + share = yield self.create_share('ro_share', 'ro_share_name') |
1487 | testfile = os.path.join(share.path, "a_file") |
1488 | open(testfile, 'w').close() |
1489 | self.assertTrue(os.path.exists(testfile)) |
1490 | |
1491 | + @defer.inlineCallbacks |
1492 | def test_dir_rw_share(self): |
1493 | """ Test that the creation of a file using fsm, works on a rw-share.""" |
1494 | - share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1495 | - self.shares_dir) |
1496 | + share = yield self.create_share('ro_share', 'ro_share_name') |
1497 | testdir = os.path.join(share.path, "path2") |
1498 | self.fsm.create(testdir, share.volume_id, is_dir=True) |
1499 | self.fsm.set_node_id(testdir, "uuid2") |
1500 | @@ -3055,10 +3083,10 @@ |
1501 | fd.close() |
1502 | self.assertTrue(os.path.exists(testdir)) |
1503 | |
1504 | + @defer.inlineCallbacks |
1505 | def test_file_rw_share(self): |
1506 | """ Test that the creation of a file using fsm, works on a rw-share.""" |
1507 | - self.share = self.create_share('ro_share', 'ro_share_name', self.fsm, |
1508 | - self.shares_dir) |
1509 | + self.share = yield self.create_share('ro_share', 'ro_share_name') |
1510 | testfile = os.path.join(self.share.path, "a_file") |
1511 | self.fsm.create(testfile, self.share.volume_id, is_dir=False) |
1512 | self.fsm.set_node_id(testfile, "uuid3") |
1513 | @@ -3094,13 +3122,13 @@ |
1514 | class TestEnableShareWrite(FSMTestCase): |
1515 | """Tests for EnableShareWrite context manager""" |
1516 | |
1517 | + @defer.inlineCallbacks |
1518 | def setUp(self): |
1519 | """Test setup""" |
1520 | FSMTestCase.setUp(self) |
1521 | # create a ro share |
1522 | - self.share_ro = self.create_share('share_ro', 'share_ro_name', |
1523 | - self.fsm, self.shares_dir, |
1524 | - access_level='View') |
1525 | + self.share_ro = yield self.create_share('share_ro', 'share_ro_name', |
1526 | + access_level='View') |
1527 | self.share_ro_path = self.share_ro.path |
1528 | |
1529 | def test_write_in_ro_share(self): |
1530 | @@ -3140,6 +3168,7 @@ |
1531 | |
1532 | class RealVMTestCase(FSMTestCase): |
1533 | |
1534 | + @defer.inlineCallbacks |
1535 | def setUp(self): |
1536 | """ Setup the test """ |
1537 | unittest.TestCase.setUp(self) |
1538 | @@ -3158,8 +3187,7 @@ |
1539 | self.main = FakeMain(self.root_dir, self.shares_dir, |
1540 | self.data_dir, self.partials_dir) |
1541 | self.fsm = self.main.fs |
1542 | - self.share = self.create_share('share', 'share_name', |
1543 | - self.fsm, self.shares_dir) |
1544 | + self.share = yield self.create_share('share', 'share_name') |
1545 | self.share_path = self.share.path |
1546 | |
1547 | def tearDown(self): |
1548 | @@ -3167,14 +3195,16 @@ |
1549 | self.main.shutdown() |
1550 | self.rmtree(TESTS_DIR) |
1551 | |
1552 | - |
1553 | - @staticmethod |
1554 | - def create_share(share_id, share_name, fsm, shares_dir, |
1555 | + @defer.inlineCallbacks |
1556 | + def create_share(self, share_id, share_name, |
1557 | access_level='Modify'): |
1558 | - with allow_writes(shares_dir): |
1559 | - return FSMTestCase.create_share(share_id, share_name, fsm, |
1560 | - shares_dir, access_level) |
1561 | - |
1562 | + with allow_writes(self.shares_dir): |
1563 | + share = yield _create_share(share_id, share_name, self.fsm, |
1564 | + self.shares_dir, access_level) |
1565 | + |
1566 | + defer.returnValue(share) |
1567 | + |
1568 | + @defer.inlineCallbacks |
1569 | def test_old_metadata_None_missing_share(self): |
1570 | """test loading metadata v0. that points to a share that |
1571 | we don't have |
1572 | @@ -3185,8 +3215,7 @@ |
1573 | mdid = self.fsm.create(path, "share") |
1574 | self.fsm.set_node_id(path, "uuid") |
1575 | # create a path with the old layout |
1576 | - other_share = self.create_share('share1', 'share1_name', |
1577 | - self.fsm, self.shares_dir) |
1578 | + other_share = yield self.create_share('share1', 'share1_name') |
1579 | share_mdid = self.fsm.create(other_share.path, "share1") |
1580 | self.fsm.set_node_id(other_share.path, "uuid1") |
1581 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1582 | @@ -3238,6 +3267,7 @@ |
1583 | self.assertRaises(KeyError, newfsm.get_by_mdid, share_mdid) |
1584 | db.shutdown() |
1585 | |
1586 | + @defer.inlineCallbacks |
1587 | def test_old_metadata_1_missing_share(self): |
1588 | """test loading metadata v1. that points to a share that |
1589 | we don't have |
1590 | @@ -3251,8 +3281,7 @@ |
1591 | self.fsm.set_node_id(path2, "uuid2") |
1592 | |
1593 | # create a path with the old layout |
1594 | - other_share = self.create_share('share1', 'share1_name', |
1595 | - self.fsm, self.shares_dir) |
1596 | + other_share = yield self.create_share('share1', 'share1_name') |
1597 | share_mdid = self.fsm.create(other_share.path, "share1") |
1598 | self.fsm.set_node_id(other_share.path, "uuid3") |
1599 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1600 | @@ -3303,6 +3332,7 @@ |
1601 | self.assertRaises(KeyError, newfsm.get_by_mdid, share_mdid) |
1602 | db.shutdown() |
1603 | |
1604 | + @defer.inlineCallbacks |
1605 | def test_old_metadata_2_missing_share(self): |
1606 | """test loading metadata v2. that points to a share that |
1607 | we don't have |
1608 | @@ -3312,8 +3342,7 @@ |
1609 | mdid = self.fsm.create(path, "share") |
1610 | self.fsm.set_node_id(path, "uuid") |
1611 | # create a path with the old layout |
1612 | - other_share = self.create_share('share1', 'share1_name', |
1613 | - self.fsm, self.shares_dir) |
1614 | + other_share = yield self.create_share('share1', 'share1_name') |
1615 | share_mdid = self.fsm.create(other_share.path, "share1") |
1616 | self.fsm.set_node_id(other_share.path, "uuid3") |
1617 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1618 | @@ -3360,6 +3389,7 @@ |
1619 | self.assertRaises(KeyError, newfsm.get_by_mdid, share_mdid) |
1620 | db.shutdown() |
1621 | |
1622 | + @defer.inlineCallbacks |
1623 | def test_old_metadata_3_missing_share(self): |
1624 | """test loading metadata v3. that points to a share that |
1625 | we don't have |
1626 | @@ -3369,8 +3399,7 @@ |
1627 | root_mdid = self.fsm.get_by_path(self.root_dir).mdid |
1628 | self.fsm.set_node_id(self.root_dir, "uuid") |
1629 | # a share |
1630 | - other_share = self.create_share('share1', 'share1_name', |
1631 | - self.fsm, self.shares_dir) |
1632 | + other_share = yield self.create_share('share1', 'share1_name') |
1633 | share_mdid = self.fsm.create(other_share.path, "share1") |
1634 | self.fsm.set_node_id(other_share.path, "uuid1") |
1635 | os.makedirs(os.path.join(self.root_dir, 'Ubuntu One')) |
1636 | @@ -3416,6 +3445,7 @@ |
1637 | self.assertRaises(KeyError, newfsm.get_by_mdid, share_mdid) |
1638 | db.shutdown() |
1639 | |
1640 | + @defer.inlineCallbacks |
1641 | def test_metadata_missing_share(self): |
1642 | """test loading current metadata that points to a share |
1643 | that we don't have |
1644 | @@ -3425,8 +3455,7 @@ |
1645 | self.assertEqual(md_version, METADATA_VERSION) |
1646 | path = os.path.join(self.share.path, 'path') |
1647 | path1 = os.path.join(self.share.path, 'path1') |
1648 | - other_share = self.create_share('share1', 'share1_name', |
1649 | - self.fsm, self.shares_dir) |
1650 | + other_share = yield self.create_share('share1', 'share1_name') |
1651 | |
1652 | path2 = os.path.join(other_share.path, 'broken_path2') |
1653 | for p in [path, path1, path2]: |
1654 | |
1655 | === modified file 'tests/syncdaemon/test_localrescan.py' |
1656 | --- tests/syncdaemon/test_localrescan.py 2011-02-01 14:33:46 +0000 |
1657 | +++ tests/syncdaemon/test_localrescan.py 2011-02-03 17:29:42 +0000 |
1658 | @@ -119,19 +119,20 @@ |
1659 | self.rmtree(self.tmpdir) |
1660 | testcase.BaseTwistedTestCase.tearDown(self) |
1661 | |
1662 | - @staticmethod |
1663 | - def create_share(share_id, share_name, fsm, shares_dir, |
1664 | + @defer.inlineCallbacks |
1665 | + def create_share(self, share_id, share_name, |
1666 | access_level='Modify', accepted=True, subscribed=True): |
1667 | """Create a share.""" |
1668 | - share_path = os.path.join(shares_dir, share_name) |
1669 | + share_path = os.path.join(self.shares_dir, share_name) |
1670 | os.makedirs(share_path) |
1671 | share = volume_manager.Share(path=share_path, volume_id=share_id, |
1672 | access_level=access_level, |
1673 | accepted=accepted, |
1674 | subscribed=subscribed) |
1675 | - fsm.vm.add_share(share) |
1676 | - return share |
1677 | + yield self.fsm.vm.add_share(share) |
1678 | + defer.returnValue(share) |
1679 | |
1680 | + @defer.inlineCallbacks |
1681 | def create_udf(self, udf_id, node_id, suggested_path, path, subscribed, |
1682 | generation=None, free_bytes=100): |
1683 | """Create an UDF and add it to the volume manager.""" |
1684 | @@ -139,8 +140,8 @@ |
1685 | suggested_path.decode('utf-8')) |
1686 | udf = volume_manager.UDF.from_udf_volume(volume, path) |
1687 | udf.subscribed = subscribed |
1688 | - self.fsm.vm.add_udf(udf) |
1689 | - return udf |
1690 | + yield self.fsm.vm.add_udf(udf) |
1691 | + defer.returnValue(udf) |
1692 | |
1693 | def create_node(self, path, is_dir, real=True, which_share=None): |
1694 | """Creates a node, really (maybe) and in the metadata.""" |
1695 | @@ -189,11 +190,12 @@ |
1696 | lr.start() |
1697 | self.assertEqual(toscan, [self.vm.root.path]) |
1698 | |
1699 | + @defer.inlineCallbacks |
1700 | def test_empty_rw(self): |
1701 | """Test with one empty Modify share.""" |
1702 | # create the share |
1703 | - share = self.create_share('share_id', 'rw_share', self.fsm, |
1704 | - self.shares_dir, access_level='Modify') |
1705 | + share = yield self.create_share('share_id', 'rw_share', |
1706 | + access_level='Modify') |
1707 | self.fsm.create(share.path, "share_id", is_dir=True) |
1708 | self.fsm.set_node_id(share.path, "uuid") |
1709 | |
1710 | @@ -210,11 +212,12 @@ |
1711 | lr.start() |
1712 | self.assertEqual(sorted(toscan), [share.path, self.vm.root.path]) |
1713 | |
1714 | + @defer.inlineCallbacks |
1715 | def test_not_empty_rw(self): |
1716 | """Test with a Modify share with info.""" |
1717 | # create the share |
1718 | - share = self.create_share('share_id', 'ro_share', self.fsm, |
1719 | - self.shares_dir, access_level='Modify') |
1720 | + share = yield self.create_share('share_id', 'ro_share', |
1721 | + access_level='Modify') |
1722 | self.fsm.create(share.path, "share_id", is_dir=True) |
1723 | self.fsm.set_node_id(share.path, "uuid1") |
1724 | |
1725 | @@ -237,11 +240,12 @@ |
1726 | lr.start() |
1727 | self.assertEqual(sorted(toscan), [share.path, self.vm.root.path]) |
1728 | |
1729 | + @defer.inlineCallbacks |
1730 | def test_deleted_rw(self): |
1731 | """Test with a deleted rw share.""" |
1732 | # create the share |
1733 | - share = self.create_share('share_id', 'rw_share', self.fsm, |
1734 | - self.shares_dir, access_level='Modify') |
1735 | + share = yield self.create_share('share_id', 'rw_share', |
1736 | + access_level='Modify') |
1737 | self.fsm.create(share.path, "share_id", is_dir=True) |
1738 | self.fsm.set_node_id(share.path, "uuid") |
1739 | |
1740 | @@ -266,11 +270,12 @@ |
1741 | self.assertEqual(vol_id, share.volume_id) |
1742 | self.assertEqual(sorted(toscan), [self.vm.root.path]) |
1743 | |
1744 | + @defer.inlineCallbacks |
1745 | def test_deleted_rw_not_empty(self): |
1746 | """Test with a deleted rw share with some nodes in it.""" |
1747 | # create the share |
1748 | - share = self.create_share('share_id', 'rw_share', self.fsm, |
1749 | - self.shares_dir, access_level='Modify') |
1750 | + share = yield self.create_share('share_id', 'rw_share', |
1751 | + access_level='Modify') |
1752 | self.fsm.create(share.path, "share_id", is_dir=True) |
1753 | self.fsm.set_node_id(share.path, "uuid") |
1754 | |
1755 | @@ -307,7 +312,7 @@ |
1756 | """Test with a deleted udf.""" |
1757 | # create the udf |
1758 | udf_path = os.path.expanduser("~/myudf") |
1759 | - udf = self.create_udf('udf_id', 'udf_root_node_id', "~/myudf", |
1760 | + udf = yield self.create_udf('udf_id', 'udf_root_node_id', "~/myudf", |
1761 | udf_path, True) |
1762 | os.makedirs(udf.path) |
1763 | self.fsm.create(udf.path, 'udf_id', is_dir=True) |
1764 | @@ -337,9 +342,10 @@ |
1765 | class VolumeTestCase(BaseTestCase): |
1766 | """Test how LocalRescan manages volumes.""" |
1767 | |
1768 | + @defer.inlineCallbacks |
1769 | def setUp(self): |
1770 | """Init.""" |
1771 | - BaseTestCase.setUp(self) |
1772 | + yield BaseTestCase.setUp(self) |
1773 | |
1774 | self.env_var = 'HOME' |
1775 | self.old_value = os.environ.get(self.env_var, None) |
1776 | @@ -355,7 +361,8 @@ |
1777 | path = os.path.expanduser(suggested_path).encode("utf8") |
1778 | os.makedirs(path) |
1779 | udf_id, node_id = 'udf_id%i' % i, 'node_id%i' % i |
1780 | - udf = self.create_udf(udf_id, node_id, suggested_path, path, True) |
1781 | + udf = yield self.create_udf(udf_id, node_id, suggested_path, |
1782 | + path, True) |
1783 | self.volumes.append(udf) |
1784 | |
1785 | # make FSM aware of it |
1786 | @@ -493,6 +500,7 @@ |
1787 | |
1788 | timeout = 2 |
1789 | |
1790 | + @defer.inlineCallbacks |
1791 | def setUp(self): |
1792 | """Set up the test.""" |
1793 | BaseTestCase.setUp(self) |
1794 | @@ -500,8 +508,8 @@ |
1795 | self.lr = LocalRescan(self.vm, self.fsm, self.eq, self.aq) |
1796 | |
1797 | # create a share |
1798 | - self.share = self.create_share('share_id', 'ro_share', self.fsm, |
1799 | - self.shares_dir, access_level='Modify') |
1800 | + self.share = yield self.create_share('share_id', 'ro_share', |
1801 | + access_level='Modify') |
1802 | self.fsm.create(self.share.path, "share_id", is_dir=True) |
1803 | self.fsm.set_node_id(self.share.path, "uuidshare") |
1804 | self.share.node_id = "uuidshare" |
1805 | @@ -535,14 +543,15 @@ |
1806 | |
1807 | timeout = 20 |
1808 | |
1809 | + @defer.inlineCallbacks |
1810 | def setUp(self): |
1811 | - TwistedBase.setUp(self) |
1812 | + yield TwistedBase.setUp(self) |
1813 | |
1814 | # create an udf |
1815 | udf_path = os.path.join(self.home_dir, "myudf") |
1816 | os.mkdir(udf_path) |
1817 | - self.udf = self.create_udf('udf_id', 'udf_root_node_id', "~/myudf", |
1818 | - udf_path, True) |
1819 | + self.udf = yield self.create_udf('udf_id', 'udf_root_node_id', |
1820 | + "~/myudf", udf_path, True) |
1821 | self.fsm.create(self.udf.path, 'udf_id', is_dir=True) |
1822 | self.fsm.set_node_id(self.udf.path, 'udf_root_node_id') |
1823 | |
1824 | @@ -954,11 +963,12 @@ |
1825 | reactor.callLater(.2, self.deferred.callback, None) |
1826 | return self.deferred |
1827 | |
1828 | + @defer.inlineCallbacks |
1829 | def test_one_dir_ro_share(self): |
1830 | """The dir is in a share that's RO, no error but no action.""" |
1831 | # create the share |
1832 | - share = self.create_share('share_id', 'ro_share2', self.fsm, |
1833 | - self.shares_dir, access_level='View') |
1834 | + share = yield self.create_share('share_id', 'ro_share2', |
1835 | + access_level='View') |
1836 | self.fsm.create(share.path, "share_id", is_dir=True) |
1837 | self.fsm.set_node_id(share.path, "uuidshare") |
1838 | |
1839 | @@ -1155,20 +1165,21 @@ |
1840 | """Test that simultaneus calls are queued.""" |
1841 | timeout = 2 |
1842 | |
1843 | + @defer.inlineCallbacks |
1844 | def setUp(self): |
1845 | """set up the test.""" |
1846 | - BaseTestCase.setUp(self) |
1847 | + yield BaseTestCase.setUp(self) |
1848 | self.deferred = defer.Deferred() |
1849 | self.eq = event_queue.EventQueue(self.fsm) |
1850 | self.lr = LocalRescan(self.vm, self.fsm, self.eq, self.aq) |
1851 | |
1852 | # create two shares |
1853 | - self.share1 = self.create_share('share_id1', 'ro_share_1', self.fsm, |
1854 | - self.shares_dir, access_level='Modify') |
1855 | + self.share1 = yield self.create_share('share_id1', 'ro_share_1', |
1856 | + access_level='Modify') |
1857 | self.fsm.create(self.share1.path, "share_id1", is_dir=True) |
1858 | self.fsm.set_node_id(self.share1.path, "uuidshare1") |
1859 | - self.share2 = self.create_share('share_id2', 'ro_share_2', self.fsm, |
1860 | - self.shares_dir, access_level='Modify') |
1861 | + self.share2 = yield self.create_share('share_id2', 'ro_share_2', |
1862 | + access_level='Modify') |
1863 | self.fsm.create(self.share2.path, "share_id2", is_dir=True) |
1864 | self.fsm.set_node_id(self.share2.path, "uuidshare2") |
1865 | |
1866 | @@ -2007,11 +2018,12 @@ |
1867 | self.startTest(check) |
1868 | return self.deferred |
1869 | |
1870 | + @defer.inlineCallbacks |
1871 | def test_SERVER_file_ro_share(self): |
1872 | """We were downloading the file, but it was interrupted in RO share.""" |
1873 | # create the file in metadata |
1874 | - ro_share = self.create_share('share_ro_id', 'share_ro2', self.fsm, |
1875 | - self.shares_dir, access_level='View') |
1876 | + ro_share = yield self.create_share('share_ro_id', 'share_ro2', |
1877 | + access_level='View') |
1878 | self.fsm.create(ro_share.path, ro_share.id, is_dir=True) |
1879 | self.fsm.set_node_id(ro_share.path, "uuidshare") |
1880 | path = os.path.join(ro_share.path, "a") |
1881 | @@ -2040,16 +2052,17 @@ |
1882 | self.assertTrue(self.handler.check_debug("comp yield", "SERVER")) |
1883 | |
1884 | self.startTest(check) |
1885 | - return self.deferred |
1886 | + yield self.deferred |
1887 | |
1888 | + @defer.inlineCallbacks |
1889 | def test_SERVER_dir_ro_share(self): |
1890 | """Found a dir in SERVER in a ro_share. |
1891 | |
1892 | This was valid before, but no more, so we just fix and log in warning. |
1893 | """ |
1894 | # create the dir in metadata |
1895 | - ro_share = self.create_share('share_ro_id', 'share_ro2', self.fsm, |
1896 | - self.shares_dir, access_level='View') |
1897 | + ro_share = yield self.create_share('share_ro_id', 'share_ro2', |
1898 | + access_level='View') |
1899 | self.fsm.create(ro_share.path, ro_share.id, is_dir=True) |
1900 | self.fsm.set_node_id(ro_share.path, "uuidshare") |
1901 | |
1902 | @@ -2078,7 +2091,7 @@ |
1903 | "Found a directory in SERVER")) |
1904 | |
1905 | self.startTest(check) |
1906 | - return self.deferred |
1907 | + yield self.deferred |
1908 | |
1909 | def test_check_stat_None(self): |
1910 | """Test check_stat with oldstat = None.""" |
1911 | @@ -2136,26 +2149,28 @@ |
1912 | self.fsm.set_node_id(self.vm.root.path, self.vm.root.node_id) |
1913 | return self._test_it(self.vm.root) |
1914 | |
1915 | + @defer.inlineCallbacks |
1916 | def test_SERVER_share(self): |
1917 | """We were downloading the share root dir but it was interrupted.""" |
1918 | # create a share |
1919 | - share = self.create_share('share_id_1', 'rw_share', self.fsm, |
1920 | - self.shares_dir, access_level='Modify') |
1921 | + share = yield self.create_share('share_id_1', 'rw_share', |
1922 | + access_level='Modify') |
1923 | self.fsm.create(share.path, "share_id_1", is_dir=True) |
1924 | self.fsm.set_node_id(share.path, "uuid_share_1") |
1925 | share.node_id = "uuid_share_1" |
1926 | self.vm.shares['share_id_1'] = share |
1927 | - return self._test_it(share) |
1928 | + yield self._test_it(share) |
1929 | |
1930 | + @defer.inlineCallbacks |
1931 | def test_SERVER_udf(self): |
1932 | """We were downloading the udf root dir, but it was interrupted.""" |
1933 | udf_path = os.path.join(self.home_dir, "myudf") |
1934 | os.mkdir(udf_path) |
1935 | - udf = self.create_udf('udf_id', 'udf_root_node_id', "~/myudf", |
1936 | - udf_path, True) |
1937 | + udf = yield self.create_udf('udf_id', 'udf_root_node_id', "~/myudf", |
1938 | + udf_path, True) |
1939 | self.fsm.create(udf.path, 'udf_id', is_dir=True) |
1940 | self.fsm.set_node_id(udf.path, 'udf_root_node_id') |
1941 | - return self._test_it(udf) |
1942 | + yield self._test_it(udf) |
1943 | |
1944 | |
1945 | class LimboTests(TwistedBase): |
1946 | @@ -2339,9 +2354,10 @@ |
1947 | |
1948 | timeout = 2 |
1949 | |
1950 | + @defer.inlineCallbacks |
1951 | def setUp(self): |
1952 | """Init.""" |
1953 | - BaseTestCase.setUp(self) |
1954 | + yield BaseTestCase.setUp(self) |
1955 | self._deferred = defer.Deferred() |
1956 | self.eq = event_queue.EventQueue(self.fsm) |
1957 | self.original_add = self.eq.add_watch |
1958 | @@ -2361,7 +2377,8 @@ |
1959 | path = os.path.expanduser(suggested_path).encode("utf8") |
1960 | os.makedirs(path) |
1961 | udf_id, node_id = 'udf_id', 'node_id' |
1962 | - self.udf = self.create_udf(udf_id, node_id, suggested_path, path, True) |
1963 | + self.udf = yield self.create_udf(udf_id, node_id, suggested_path, |
1964 | + path, True) |
1965 | self.ancestors = self.udf.ancestors # need a fake HOME |
1966 | |
1967 | # make FSM aware of it |
1968 | |
1969 | === modified file 'tests/syncdaemon/test_status_listener.py' |
1970 | --- tests/syncdaemon/test_status_listener.py 2011-01-27 20:44:23 +0000 |
1971 | +++ tests/syncdaemon/test_status_listener.py 2011-02-03 17:29:42 +0000 |
1972 | @@ -120,8 +120,8 @@ |
1973 | public_url = 'http://example.com/foo.mp3' |
1974 | |
1975 | share_path = os.path.join(self.shares_dir, 'share') |
1976 | - self.main.vm.add_share(Share(path=share_path, volume_id='share', |
1977 | - other_username='other username')) |
1978 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share', |
1979 | + other_username='other username')) |
1980 | path = os.path.join(share_path, "foo.mp3") |
1981 | self.main.fs.create(path, str(share_id)) |
1982 | self.main.fs.set_node_id(path, str(node_id)) |
1983 | @@ -144,8 +144,8 @@ |
1984 | public_url = 'http://example.com/foo.mp3' |
1985 | |
1986 | share_path = os.path.join(self.shares_dir, 'share') |
1987 | - self.main.vm.add_share(Share(path=share_path, volume_id='share', |
1988 | - other_username='other username')) |
1989 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share', |
1990 | + other_username='other username')) |
1991 | path = os.path.join(share_path, "foo.mp3") |
1992 | self.main.fs.create(path, str(share_id)) |
1993 | self.main.fs.set_node_id(path, str(node_id)) |
1994 | @@ -210,7 +210,7 @@ |
1995 | SHARE_ID = "fake share id" |
1996 | d = defer.Deferred() |
1997 | share = Share(volume_id=SHARE_ID) |
1998 | - self.main.vm.add_share(share) |
1999 | + yield self.main.vm.add_share(share) |
2000 | self._listen_for('VM_SHARE_CREATED', d.callback) |
2001 | self.main.event_q.push('VM_SHARE_CREATED', share) |
2002 | yield d |
2003 | |
2004 | === modified file 'tests/syncdaemon/test_sync.py' |
2005 | --- tests/syncdaemon/test_sync.py 2011-01-25 18:29:04 +0000 |
2006 | +++ tests/syncdaemon/test_sync.py 2011-02-03 17:29:42 +0000 |
2007 | @@ -75,6 +75,7 @@ |
2008 | class FSKeyTestCase(BaseTwistedTestCase): |
2009 | """ Base test case for FSKey """ |
2010 | |
2011 | + @defer.inlineCallbacks |
2012 | def setUp(self): |
2013 | """ Setup the test """ |
2014 | unittest.TestCase.setUp(self) |
2015 | @@ -93,8 +94,7 @@ |
2016 | self.db) |
2017 | self.eq = EventQueue(self.fsm) |
2018 | self.fsm.register_eq(self.eq) |
2019 | - self.share = self.create_share('share', 'share_name', |
2020 | - self.fsm, self.shares_dir) |
2021 | + self.share = yield self.create_share('share', 'share_name') |
2022 | self.share_path = self.share.path |
2023 | |
2024 | def tearDown(self): |
2025 | @@ -103,16 +103,15 @@ |
2026 | self.db.shutdown() |
2027 | shutil.rmtree(self.test_dir) |
2028 | |
2029 | - @staticmethod |
2030 | - def create_share(share_id, share_name, fsm, shares_dir, |
2031 | - access_level='Modify'): |
2032 | - """ creates a share """ |
2033 | - share_path = os.path.join(shares_dir, share_name) |
2034 | + @defer.inlineCallbacks |
2035 | + def create_share(self, share_id, share_name, access_level='Modify'): |
2036 | + """Create a share.""" |
2037 | + share_path = os.path.join(self.shares_dir, share_name) |
2038 | os.makedirs(share_path) |
2039 | share = Share(path=share_path, volume_id=share_id, |
2040 | access_level=access_level) |
2041 | - fsm.vm.add_share(share) |
2042 | - return share |
2043 | + yield self.fsm.vm.add_share(share) |
2044 | + defer.returnValue(share) |
2045 | |
2046 | |
2047 | class FSKeyTests(FSKeyTestCase): |
2048 | |
2049 | === modified file 'tests/syncdaemon/test_u1sdtool.py' |
2050 | --- tests/syncdaemon/test_u1sdtool.py 2011-01-14 13:11:47 +0000 |
2051 | +++ tests/syncdaemon/test_u1sdtool.py 2011-02-03 17:29:42 +0000 |
2052 | @@ -179,12 +179,13 @@ |
2053 | d.addCallback(check) |
2054 | return d |
2055 | |
2056 | + @defer.inlineCallbacks |
2057 | def test_show_current_transfers(self): |
2058 | """test the output of --current_transfers option with transfers in |
2059 | progress. |
2060 | """ |
2061 | share_path = os.path.join(self.shares_dir, 'share') |
2062 | - self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
2063 | + yield self.main.vm.add_share(Share(path=share_path, volume_id='share_id')) |
2064 | # create a download |
2065 | down_path = os.path.join(share_path, "down_path") |
2066 | self.fs_manager.create(down_path, "share_id") |
2067 | @@ -203,15 +204,13 @@ |
2068 | "downloads:\n path: %(down_path)s\n deflated size: " + \ |
2069 | "10\n bytes read: 1\n" |
2070 | expected = expected % dict(up_path=up_path, down_path=down_path) |
2071 | - d = self.tool.get_current_uploads() |
2072 | - d.addCallback(lambda result: show_uploads(result, out)) |
2073 | - d.addCallback(lambda _: self.tool.get_current_downloads()) |
2074 | - d.addCallback(lambda result: show_downloads(result, out)) |
2075 | - def check(result): |
2076 | - """check the output""" |
2077 | - self.assertEquals(out.getvalue(), expected) |
2078 | - d.addCallback(check) |
2079 | - return d |
2080 | + result = yield self.tool.get_current_uploads() |
2081 | + show_uploads(result, out) |
2082 | + |
2083 | + result = yield self.tool.get_current_downloads() |
2084 | + show_downloads(result, out) |
2085 | + |
2086 | + self.assertEquals(out.getvalue(), expected) |
2087 | |
2088 | def test_show_state(self): |
2089 | """test the output of --status """ |
Looks good!