def setUp(self):
        super(TestMoveKeysHook, self).setUp()

        conf = self.fake_config
        conf.from_version = '6.0'

        self.hook = MoveKeysHook(self.upgraders, conf)
class TestMoveKeysHook(TestPreUpgradeHooksBase):

    def setUp(self):
        super(TestMoveKeysHook, self).setUp()

        conf = self.fake_config
        conf.from_version = '6.0'

        self.hook = MoveKeysHook(self.upgraders, conf)

    def test_is_required_returns_true(self):
        self.hook.config.from_version = '6.0'
        self.assertTrue(self.hook.check_if_required())

        self.hook.config.from_version = '6.0.1'
        self.assertTrue(self.hook.check_if_required())

    def test_is_required_returns_false(self):
        self.hook.config.from_version = '6.1'
        self.assertFalse(self.hook.check_if_required())

        self.hook.config.from_version = '6.2'
        self.assertFalse(self.hook.check_if_required())

    @mock.patch(
        'fuel_upgrade.pre_upgrade_hooks.from_6_0_to_any_copy_keys.utils.'
        'file_exists', return_value=True)
    @mock.patch(
        'fuel_upgrade.pre_upgrade_hooks.from_6_0_to_any_copy_keys.utils.'
        'exec_cmd')
    def test_run(self, cmd_exec, f_exist):
        self.hook.run()

        f_exist.assert_called_once_with(self.hook.dst_path)
        cmd_exec.assert_has_calls(
            [mock.call('docker cp fuel-core-6.0-astute:/var/lib/astute/ '
                       '/var/lib/fuel/keys/'),
             mock.call('mv /var/lib/fuel/keys/astute/* /var/lib/fuel/keys/'),
             mock.call('rm -r /var/lib/fuel/keys/astute/')])