예제 #1
0
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
예제 #2
0
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
예제 #3
0
    def list_binaries(request, response):

        binaries = yield from Qemu.binary_list(request.json.get("archs", None))
        response.json(binaries)
예제 #4
0
    def list_binaries(request, response):

        binaries = yield from Qemu.binary_list(request.json.get("archs", None))
        response.json(binaries)