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
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
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
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'
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
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
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
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
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"}'
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))
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"}'
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
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
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
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'
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