~openstack-charmers-next/charms/xenial/glance/trunk

« back to all changes in this revision

Viewing changes to unit_tests/test_glance_utils.py

  • Committer: Alex Kavanagh
  • Date: 2016-03-18 10:18:56 UTC
  • Revision ID: alex@ajkavanagh.co.uk-20160318101856-6h157du6i4j4rvuc
Enhanced pause and resume for maintenance mode

Adds improved pause and resume unit to the charm such tha the
charm stays paused during maintenance operations.
Sync latest version of charm-helpers for maintenance mode.

Change-Id: I6e793744709b65c89afb6f0fc460f9d96755bf82

Show diffs side-by-side

added added

removed removed

Lines of Context:
287
287
        ]
288
288
        self.assertEquals(service_restart.call_args_list, expected)
289
289
 
290
 
    @patch.object(utils, 'HookData')
291
 
    @patch.object(utils, 'kv')
292
 
    def test_is_paused(self, kv, HookData):
293
 
        """test_is_paused: Test is_paused() returns value
294
 
        from kv('unit-paused')"""
295
 
        HookData()().return_value = True
296
 
        kv().get.return_value = True
297
 
        self.assertEqual(utils.is_paused(), True)
298
 
        kv().get.assert_called_with('unit-paused')
299
 
        kv().get.return_value = False
300
 
        self.assertEqual(utils.is_paused(), False)
301
 
 
302
 
    @patch.object(utils, 'is_paused')
303
 
    @patch.object(utils, 'status_set')
304
 
    def test_assess_status(self, status_set, is_paused):
305
 
        """test_assess_status: verify that it does pick the right status"""
306
 
        # check that paused status does the right thing
307
 
        is_paused.return_value = True
308
 
        utils.assess_status(None)
309
 
        status_set.assert_called_with(
310
 
            "maintenance",
311
 
            "Paused. Use 'resume' action to resume normal service.")
312
 
 
313
 
        # if it isn't paused, the assess_status() calls
314
 
        # set_os_workload_status()
315
 
        is_paused.return_value = False
316
 
        with patch.object(utils, 'set_os_workload_status') \
317
 
                as set_os_workload_status:
318
 
            utils.assess_status("TEST CONFIG")
319
 
            set_os_workload_status.assert_called_with(
320
 
                "TEST CONFIG",
321
 
                utils.REQUIRED_INTERFACES,
322
 
                charm_func=utils.check_optional_relations)
 
290
    def test_assess_status(self):
 
291
        with patch.object(utils, 'assess_status_func') as asf:
 
292
            callee = MagicMock()
 
293
            asf.return_value = callee
 
294
            utils.assess_status('test-config')
 
295
            asf.assert_called_once_with('test-config')
 
296
            callee.assert_called_once_with()
 
297
 
 
298
    @patch.object(utils, 'REQUIRED_INTERFACES')
 
299
    @patch.object(utils, 'services')
 
300
    @patch.object(utils, 'make_assess_status_func')
 
301
    def test_assess_status_func(self,
 
302
                                make_assess_status_func,
 
303
                                services,
 
304
                                REQUIRED_INTERFACES):
 
305
        services.return_value = 's1'
 
306
        utils.assess_status_func('test-config')
 
307
        # ports=None whilst port checks are disabled.
 
308
        make_assess_status_func.assert_called_once_with(
 
309
            'test-config', REQUIRED_INTERFACES,
 
310
            charm_func=utils.check_optional_relations,
 
311
            services='s1', ports=None)
 
312
 
 
313
    def test_pause_unit_helper(self):
 
314
        with patch.object(utils, '_pause_resume_helper') as prh:
 
315
            utils.pause_unit_helper('random-config')
 
316
            prh.assert_called_once_with(utils.pause_unit, 'random-config')
 
317
        with patch.object(utils, '_pause_resume_helper') as prh:
 
318
            utils.resume_unit_helper('random-config')
 
319
            prh.assert_called_once_with(utils.resume_unit, 'random-config')
 
320
 
 
321
    @patch.object(utils, 'services')
 
322
    def test_pause_resume_helper(self, services):
 
323
        f = MagicMock()
 
324
        services.return_value = 's1'
 
325
        with patch.object(utils, 'assess_status_func') as asf:
 
326
            asf.return_value = 'assessor'
 
327
            utils._pause_resume_helper(f, 'some-config')
 
328
            asf.assert_called_once_with('some-config')
 
329
            # ports=None whilst port checks are disabled.
 
330
            f.assert_called_once_with('assessor', services='s1', ports=None)
323
331
 
324
332
    @patch.object(utils, 'os')
325
333
    @patch.object(utils, 'kv')