import os
import pytest
from virtinst import cli
from virtinst import pollhelpers
from virtinst import StoragePool
from virtinst import URI
def test_misc():
conn = cli.getConnection("test:///default")
conn.invalidate_caps()
assert conn.is_open() is True
assert conn.is_container_only() is False
assert conn.is_openvz() is False
assert not conn.get_uri_hostname()
assert not conn.get_uri_port()
assert not conn.get_uri_username()
assert not conn.get_uri_transport()
assert conn.close() == 0
fakeuri = "__virtinst_test__test:///default,libver=123"
conn = cli.getConnection(fakeuri)
assert conn.daemon_version() == 123
conn._uriobj = URI("qemu://example.com/system")
assert conn.get_uri_transport() == "tls"
fakeuri = "__virtinst_test__test:///default,fakeuri=qemu:///embed"
conn = cli.getConnection(fakeuri)
assert conn.is_privileged() == (os.getuid() == 0)
with pytest.raises(RuntimeError):
cli.getConnection(fakeuri + ",qemu")
def test_default_uri(monkeypatch):
monkeypatch.setitem(os.environ, "LIBVIRT_DEFAULT_URI", "test:///default")
conn = cli.getConnection(None)
assert conn.getURI() == "test:///default"
conn.close()
def test_poll():
conn = cli.getConnection("test:///default")
objmap = {}
def build_cb(obj, name):
return obj
gone, new, master = pollhelpers.fetch_nets(conn, {}, build_cb)
assert len(gone) == 0
assert len(new) == 1
assert len(master) == 1
assert master[0].name() == "default"
objmap = dict((obj.name(), obj) for obj in master)
gone, new, master = pollhelpers.fetch_nets(conn, objmap, build_cb)
assert len(gone) == 0
assert len(new) == 0
assert len(master) == 1
assert master[0].name() == "default"
def makepool(name, create):
poolxml = StoragePool(conn)
poolxml.type = "dir"
poolxml.name = name
poolxml.target_path = "/tmp/foo/bar/baz/%s" % name
return poolxml.install(create=create)
poolobj1 = makepool("conntest1", False)
conn.fetch_all_pools()
poolobj2 = makepool("conntest2", True)
conn.fetch_all_vols()
poolobj1.undefine()
poolobj2.destroy()
poolobj2.undefine()