Exemple #1
0
def test_guess_flavor_flavor(prepare_os, mock_image_cfg, mock_env_cfg, config):
    p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    with mock.patch.object(p, 'os') as mock_os:
        mock_os.fuzzy_find_flavor.return_value = sentinel.flavor
        assert p.guess_flavor(config.Config({'nova': {
            'flavor': 'x'
        }})) == sentinel.flavor
Exemple #2
0
def test_init_override_image(prepare_os, mock_image_cfg, mock_env_cfg):
    with mock.patch.object(prepare_os.osclient, "OSClient"):
        dt = prepare_os.PrepOS(mock_image_cfg,
                               mock_env_cfg,
                               override_image=sentinel.override_image)
        assert dt.delete_image is False
        assert dt.delete_instance is True
Exemple #3
0
def test_prepare_ssh_empty(prepare_os, config, mock_env_cfg):
    p = prepare_os.PrepOS(config.Config({'glance': {
        'name': 'foo'
    }}), mock_env_cfg)
    p.ip = sentinel.ip
    p.prepare_ssh()
    assert p.ssh is None
Exemple #4
0
def test_guess_flavor_flavor_id(prepare_os, mock_image_cfg, mock_env_cfg,
                                config):
    p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    with mock.patch.object(p, 'os') as mock_os:
        mock_os.get_flavor = lambda x: x
        assert p.guess_flavor(config.Config({'nova': {
            'flavor_id': 'x'
        }})) == 'x'
Exemple #5
0
def test_grand_test_for_context_manager_normal(prepare_os, prep_os, mock_image_cfg, mock_env_cfg):

    with mock.patch.object(prepare_os.osclient, "OSClient") as mockos:
        mockos.return_value.new_keypair.return_value.private_key = "key"
        mockos.return_value.boot_instance.return_value.status = "ACTIVE"
        p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg, delete_instance=False)
        with p:
            pass
Exemple #6
0
def test_spawn_instance_no_config_drive(prepare_os, mock_image_cfg, config):
    env = {'keystone': {}, 'nova': {'flavor': 'mock_flavor'}}
    prep_os = prepare_os.PrepOS(mock_image_cfg, config.Config(env))
    with mock.patch.object(prepare_os.osclient, "OSClient") as mock_os:
        prep_os.os_key = mock.MagicMock()
        prep_os.connect()
        prep_os.spawn_instance(1)
        assert mock_os.return_value.boot_instance.call_args[1][
            'config_drive'] is False
Exemple #7
0
def refactor_test_grand_test_for_context_manager_fail_not_delete(prepare_os, capsys, mock_image_cfg, mock_env_cfg):
    with pytest.raises(Exception):
        with mock.patch.object(prepare_os.osclient, "OSClient") as mockos:
            mockos.return_value.new_keypair.return_value.private_key = "key"
            mockos.return_value.boot_instance.return_value.status = "ACTIVE"
            p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg, delete_instance=False)
            with p:
                p.report = True
                raise Exception
    output = capsys.readouterr()[0]
    assert "Instance ip is" in output
Exemple #8
0
def prep_os(prepare_os):
    with mock.patch.object(prepare_os.PrepOS, "__init__", lambda x: None):
        prep_os = prepare_os.PrepOS()
    prep_os.os = mock.MagicMock(spec=prepare_os.osclient.OSClient)
    prep_os.delete_image = True
    prep_os.delete_instance = True
    prep_os.delete_keypair = True
    prep_os.upload_timeout = 1
    prep_os.active_timeout = 1
    prep_os.cleanup_timeout = 1
    prep_os.keypair_timeout = 1
    prep_os.create_timeout = 1
    prep_os.os_image = sentinel.image
    prep_os.os_instance = sentinel.instance
    prep_os.os_key = sentinel.key
    prep_os.ssh = None
    return prep_os
Exemple #9
0
def test__userdata_with_userdata_file(prepare_os, mock_image_cfg, config):
    with tempfile.NamedTemporaryFile() as t:
        t.write('{"foo":"bar"}')
        t.flush()
        env = config.Config({
            'keystone': {
                'auth_url': sentinel.auth,
                'tenant_name': sentinel.tenant,
                'password': sentinel.password,
                'username': sentinel.user
            },
            'nova': {
                'flavor': 'example',
                'nics': [
                    {'net_id': sentinel.uuid1},
                    {'net_id': sentinel.uuid2}
                ],
                'userdata_file': t.name
            }
        })

        prep_os = prepare_os.PrepOS(mock_image_cfg, env)
        assert prep_os._userdata(env) == '{"foo":"bar"}'
Exemple #10
0
def test_guess_flavor_flavor_bad(prepare_os, mock_image_cfg, mock_env_cfg,
                                 config, bad):
    p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    with mock.patch.object(p, 'os'):
        with pytest.raises(prepare_os.FlavorError):
            assert p.guess_flavor(config.Config(bad))
Exemple #11
0
def test__userdata_with_text_userdata(prepare_os, mock_image_cfg,
                                      mock_env_cfg_with_userdata):
    prep_os = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg_with_userdata)
    assert prep_os._userdata(
        mock_env_cfg_with_userdata) == '{"userdata":"here"}'
Exemple #12
0
def test__userdata_no_userdata(prepare_os, mock_image_cfg, mock_env_cfg,
                               config):
    prep_os = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    assert prep_os._userdata(config.Config({})) is None
Exemple #13
0
def test_spawn_instance(prepare_os, mock_image_cfg, mock_env_cfg):
    prep_os = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    with mock.patch.object(prepare_os.osclient, 'OSClient'):
        prep_os.os_key = mock.MagicMock()
        prep_os.spawn_instance(1)
        assert prep_os.os.boot_instance.called
Exemple #14
0
def test_prepare_ssh_normal(prepare_os, config, mock_image_cfg, mock_env_cfg):
    p = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
    p.ip = sentinel.ip
    p.os_key = mock.MagicMock()
    p.prepare_ssh()
    assert p.ssh is not None
Exemple #15
0
def test_init_proper_join_of_glance_sections2(prepare_os):
    img = {'glance': {'name': 'foo', 'disk_format': 'qcow2'}}
    env = {'nova': {}}
    with mock.patch.object(prepare_os.osclient, "OSClient"):
        dt = prepare_os.PrepOS(img, env)
        assert dt.combined_glance_section['disk_format'] == 'qcow2'
Exemple #16
0
def test_init_normal(prepare_os, mock_image_cfg, mock_env_cfg):
    with mock.patch.object(prepare_os.osclient, "OSClient"):
        dt = prepare_os.PrepOS(mock_image_cfg, mock_env_cfg)
        assert dt.delete_image is True
        assert dt.delete_instance is True