~chipaca/ubuntuone-client/u1sdtool-imports-tools-too

« back to all changes in this revision

Viewing changes to tests/syncdaemon/test_vm.py

  • Committer: Tarmac
  • Author(s): guillermo.gonzalez at canonical
  • Date: 2010-11-30 21:19:36 UTC
  • mfrom: (744.1.3 fix-674092)
  • Revision ID: tarmac-20101130211936-jo5m1b8vpcc8qn5o
This branch fix server rescan to also cleanup dead volumes after the actual volumes rescan.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2321
2321
    test_refresh_shares_called_after_server_rescan.timeout  = 1
2322
2322
 
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]
 
2338
 
 
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))
 
2361
 
 
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))
 
2399
 
 
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