diff options
| author | Sankar Tanguturi <stanguturi@stanguturi-rhel> | 2016-03-11 11:29:15 -0800 | 
|---|---|---|
| committer | Sankar Tanguturi <stanguturi@stanguturi-rhel> | 2016-03-11 11:29:15 -0800 | 
| commit | a3fd7441f8ea4d25e96b9bc0eca7cbb6164a4691 (patch) | |
| tree | 74a6ebbe7c91c30467577eb231fab8c5f188b93c /tests/unittests/test_handler/test_handler_lxd.py | |
| parent | a6e0922a4d34ede6df000dd8fc4bb3531218d69f (diff) | |
| parent | 41470d29f5888baf7ec78e170cc0d6d981dcf63e (diff) | |
| download | vyos-cloud-init-a3fd7441f8ea4d25e96b9bc0eca7cbb6164a4691.tar.gz vyos-cloud-init-a3fd7441f8ea4d25e96b9bc0eca7cbb6164a4691.zip  | |
- Executed 'bzr merge' and resolved all the conflicts.
- Now my branch is identical to trunk.dist
Diffstat (limited to 'tests/unittests/test_handler/test_handler_lxd.py')
| -rw-r--r-- | tests/unittests/test_handler/test_handler_lxd.py | 75 | 
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/unittests/test_handler/test_handler_lxd.py b/tests/unittests/test_handler/test_handler_lxd.py new file mode 100644 index 00000000..7ffa2a53 --- /dev/null +++ b/tests/unittests/test_handler/test_handler_lxd.py @@ -0,0 +1,75 @@ +from cloudinit.config import cc_lxd +from cloudinit import (distros, helpers, cloud) +from cloudinit.sources import DataSourceNoCloud +from .. import helpers as t_help + +import logging + +try: +    from unittest import mock +except ImportError: +    import mock + +LOG = logging.getLogger(__name__) + + +class TestLxd(t_help.TestCase): +    lxd_cfg = { +        'lxd': { +            'init': { +                'network_address': '0.0.0.0', +                'storage_backend': 'zfs', +                'storage_pool': 'poolname', +            } +        } +    } + +    def setUp(self): +        super(TestLxd, self).setUp() + +    def _get_cloud(self, distro): +        cls = distros.fetch(distro) +        paths = helpers.Paths({}) +        d = cls(distro, {}, paths) +        ds = DataSourceNoCloud.DataSourceNoCloud({}, d, paths) +        cc = cloud.Cloud(ds, paths, {}, d, None) +        return cc + +    @mock.patch("cloudinit.config.cc_lxd.util") +    def test_lxd_init(self, mock_util): +        cc = self._get_cloud('ubuntu') +        mock_util.which.return_value = True +        cc_lxd.handle('cc_lxd', self.lxd_cfg, cc, LOG, []) +        self.assertTrue(mock_util.which.called) +        init_call = mock_util.subp.call_args_list[0][0][0] +        self.assertEquals(init_call, +                          ['lxd', 'init', '--auto', +                           '--network-address=0.0.0.0', +                           '--storage-backend=zfs', +                           '--storage-pool=poolname']) + +    @mock.patch("cloudinit.config.cc_lxd.util") +    def test_lxd_install(self, mock_util): +        cc = self._get_cloud('ubuntu') +        cc.distro = mock.MagicMock() +        mock_util.which.return_value = None +        cc_lxd.handle('cc_lxd', self.lxd_cfg, cc, LOG, []) +        self.assertTrue(cc.distro.install_packages.called) +        install_pkg = cc.distro.install_packages.call_args_list[0][0][0] +        self.assertEquals(sorted(install_pkg), ['lxd', 'zfs']) + +    @mock.patch("cloudinit.config.cc_lxd.util") +    def test_no_init_does_nothing(self, mock_util): +        cc = self._get_cloud('ubuntu') +        cc.distro = mock.MagicMock() +        cc_lxd.handle('cc_lxd', {'lxd': {}}, cc, LOG, []) +        self.assertFalse(cc.distro.install_packages.called) +        self.assertFalse(mock_util.subp.called) + +    @mock.patch("cloudinit.config.cc_lxd.util") +    def test_no_lxd_does_nothing(self, mock_util): +        cc = self._get_cloud('ubuntu') +        cc.distro = mock.MagicMock() +        cc_lxd.handle('cc_lxd', {'package_update': True}, cc, LOG, []) +        self.assertFalse(cc.distro.install_packages.called) +        self.assertFalse(mock_util.subp.called)  | 
