2321
2321
test_refresh_shares_called_after_server_rescan.timeout = 1
2323
2323
@defer.inlineCallbacks
2324
def test_server_rescan_clean_dead_udf(self):
2325
"""Test cleanup of dead volumes after server_rescan method."""
2326
# the UDF part makes sense if UDF autosubscribe is True
2327
user_conf = config.get_user_config()
2328
user_conf.set_udf_autosubscribe(True)
2329
share_id = uuid.uuid4()
2330
share_volume = volumes.ShareVolume(share_id, 'fake_share_uuid', 1, 100,
2331
'to_me', 'fake_share', 'username',
2332
'visible_username', True, 'View')
2333
udf_id = uuid.uuid4()
2334
udf_volume = volumes.UDFVolume(udf_id, 'udf_node_id', 1, 200, u'~/UDF')
2335
root_id = uuid.uuid4()
2336
root_volume = volumes.RootVolume(root_id, 1, 500)
2337
response = [share_volume, udf_volume, root_volume]
2339
# patch fake action queue
2340
self.main.action_q.query_volumes = lambda: defer.succeed(response)
2341
server_rescan_d = defer.Deferred()
2342
self._listen_for('SYS_SERVER_RESCAN_DONE', server_rescan_d.callback)
2343
with environ('HOME', self.home_dir):
2344
yield self.vm.server_rescan()
2345
yield server_rescan_d
2346
self.assertIn(request.ROOT, self.vm.shares)
2347
self.assertIn(str(share_volume.volume_id), self.vm.shares)
2348
self.assertEquals(1, len(self.vm.udfs))
2349
self.assertEquals(2, len(self.vm.shares))
2350
# remove the udf from the response list
2351
response = [share_volume, root_volume]
2352
server_rescan_d = defer.Deferred()
2353
self._listen_for('SYS_SERVER_RESCAN_DONE', server_rescan_d.callback)
2354
with environ('HOME', self.home_dir):
2355
yield self.vm.server_rescan()
2356
yield server_rescan_d
2357
self.assertIn(request.ROOT, self.vm.shares)
2358
self.assertIn(str(share_volume.volume_id), self.vm.shares)
2359
self.assertEquals(0, len(self.vm.udfs))
2360
self.assertEquals(2, len(self.vm.shares))
2362
@defer.inlineCallbacks
2363
def test_server_rescan_clean_dead_shares(self):
2364
"""Test cleanup of dead volumes after server_rescan method."""
2365
# the UDF part makes sense if UDF autosubscribe is True
2366
user_conf = config.get_user_config()
2367
user_conf.set_udf_autosubscribe(True)
2368
share_id = uuid.uuid4()
2369
share_volume = volumes.ShareVolume(share_id, 'fake_share_uuid', 1, 100,
2370
'to_me', 'fake_share', 'username',
2371
'visible_username', True, 'View')
2372
udf_id = uuid.uuid4()
2373
udf_volume = volumes.UDFVolume(udf_id, 'udf_node_id', 1, 200, u'~/UDF')
2374
root_id = uuid.uuid4()
2375
root_volume = volumes.RootVolume(root_id, 1, 500)
2376
response = [share_volume, udf_volume, root_volume]
2377
# patch fake action queue
2378
self.main.action_q.query_volumes = lambda: defer.succeed(response)
2379
server_rescan_d = defer.Deferred()
2380
self._listen_for('SYS_SERVER_RESCAN_DONE', server_rescan_d.callback)
2381
with environ('HOME', self.home_dir):
2382
yield self.vm.server_rescan()
2383
yield server_rescan_d
2384
self.assertIn(request.ROOT, self.vm.shares)
2385
self.assertIn(str(udf_volume.volume_id), self.vm.udfs)
2386
self.assertEquals(1, len(self.vm.udfs))
2387
self.assertEquals(2, len(self.vm.shares))
2388
# remove the share from the response list
2389
response = [udf_volume, root_volume]
2390
server_rescan_d = defer.Deferred()
2391
self._listen_for('SYS_SERVER_RESCAN_DONE', server_rescan_d.callback)
2392
with environ('HOME', self.home_dir):
2393
yield self.vm.server_rescan()
2394
yield server_rescan_d
2395
self.assertIn(request.ROOT, self.vm.shares)
2396
self.assertIn(str(udf_volume.volume_id), self.vm.udfs)
2397
self.assertEquals(1, len(self.vm.udfs))
2398
self.assertEquals(1, len(self.vm.shares))
2400
@defer.inlineCallbacks
2324
2401
def test_volumes_rescan_cb(self):
2325
2402
"""Test for _volumes_rescan_cb."""
2326
2403
# the UDF part makes sense if UDF autosubscribe is True