def test_binary_list(loop): files_to_create = ["qemu-system-x86", "qemu-system-x42", "qemu-kvm", "hello", "qemu-system-x86_64-spice"] for file_to_create in files_to_create: path = os.path.join(os.environ["PATH"], file_to_create) with open(path, "w+") as f: f.write("1") os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) with asyncio_patch("gns3server.compute.qemu.subprocess_check_output", return_value="QEMU emulator version 2.2.0, Copyright (c) 2003-2008 Fabrice Bellard") as mock: if sys.platform.startswith("win"): version = "" else: version = "2.2.0" qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list())) assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86_64-spice"), "version": version} not in qemus qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list(["x86"]))) assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} not in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} not in qemus assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list(["x86", "x42"]))) assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} not in qemus assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} in qemus assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus
def test_binary_list(loop): files_to_create = [ "qemu-system-x86", "qemu-system-x42", "qemu-kvm", "hello", "qemu-system-x86_64-spice" ] for file_to_create in files_to_create: path = os.path.join(os.environ["PATH"], file_to_create) with open(path, "w+") as f: f.write("1") os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) with asyncio_patch( "gns3server.compute.qemu.subprocess_check_output", return_value= "QEMU emulator version 2.2.0, Copyright (c) 2003-2008 Fabrice Bellard" ) as mock: if sys.platform.startswith("win"): version = "" else: version = "2.2.0" qemus = loop.run_until_complete(asyncio. async (Qemu.binary_list())) assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "hello"), "version": version } not in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x86_64-spice"), "version": version } not in qemus qemus = loop.run_until_complete(asyncio. async (Qemu.binary_list( ["x86"]))) assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version } not in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version } not in qemus assert { "path": os.path.join(os.environ["PATH"], "hello"), "version": version } not in qemus qemus = loop.run_until_complete(asyncio. async (Qemu.binary_list( ["x86", "x42"]))) assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version } not in qemus assert { "path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version } in qemus assert { "path": os.path.join(os.environ["PATH"], "hello"), "version": version } not in qemus
def list_binaries(request, response): binaries = yield from Qemu.binary_list(request.json.get("archs", None)) response.json(binaries)