Exemple #1
0
def test_import(tmpdir):

    project_id = str(uuid.uuid4())
    project = Project(name="test", project_id=project_id)

    topology = {
        "project_id": str(uuid.uuid4()),
        "name": "testtest",
        "topology": {
            "nodes": [{
                "server_id": 3,
                "type": "VPCSDevice"
            }, {
                "server_id": 3,
                "type": "QemuVM"
            }]
        }
    }

    with open(str(tmpdir / "project.gns3"), 'w+') as f:
        json.dump(topology, f)
    with open(str(tmpdir / "b.png"), 'w+') as f:
        f.write("B")

    zip_path = str(tmpdir / "project.zip")
    with zipfile.ZipFile(zip_path, 'w') as myzip:
        myzip.write(str(tmpdir / "project.gns3"), "project.gns3")
        myzip.write(str(tmpdir / "b.png"), "b.png")
        myzip.write(str(tmpdir / "b.png"), "project-files/dynamips/test")
        myzip.write(str(tmpdir / "b.png"), "project-files/qemu/test")

    with open(zip_path, "rb") as f:
        project.import_zip(f)

    assert os.path.exists(os.path.join(project.path, "b.png"))
    assert os.path.exists(os.path.join(project.path, "test.gns3"))
    assert os.path.exists(
        os.path.join(project.path, "project-files/dynamips/test"))
    assert os.path.exists(
        os.path.join(project.path, "servers/vm/project-files/qemu/test"))

    with open(os.path.join(project.path, "test.gns3")) as f:
        content = json.load(f)

    assert content["name"] == "test"
    assert content["project_id"] == project_id
    assert content["topology"]["servers"] == [
        {
            "id": 1,
            "local": True,
            "vm": False
        },
        {
            "id": 2,
            "local": False,
            "vm": True
        },
    ]
    assert content["topology"]["nodes"][0]["server_id"] == 1
    assert content["topology"]["nodes"][1]["server_id"] == 2
def test_import_with_images(tmpdir):

    project_id = str(uuid.uuid4())
    project = Project(name="test", project_id=project_id)

    with open(str(tmpdir / "test.image"), 'w+') as f:
        f.write("B")

    zip_path = str(tmpdir / "project.zip")
    with zipfile.ZipFile(zip_path, 'w') as myzip:
        myzip.write(str(tmpdir / "test.image"), "images/IOS/test.image")

    with open(zip_path, "rb") as f:
        project.import_zip(f)

    # TEST import images
    path = os.path.join(project._config().get("images_path"), "IOS", "test.image")
    assert os.path.exists(path), path
Exemple #3
0
def test_import_with_images(tmpdir):

    project_id = str(uuid.uuid4())
    project = Project(name="test", project_id=project_id)

    with open(str(tmpdir / "test.image"), 'w+') as f:
        f.write("B")

    zip_path = str(tmpdir / "project.zip")
    with zipfile.ZipFile(zip_path, 'w') as myzip:
        myzip.write(str(tmpdir / "test.image"), "images/IOS/test.image")

    with open(zip_path, "rb") as f:
        project.import_zip(f)

    # TEST import images
    path = os.path.join(project._config().get("images_path"), "IOS",
                        "test.image")
    assert os.path.exists(path), path
def test_import(tmpdir):

    project_id = str(uuid.uuid4())
    project = Project(name="test", project_id=project_id)

    topology = {
        "project_id": str(uuid.uuid4()),
        "name": "testtest",
        "topology": {
            "nodes": [
                {
                    "server_id": 3,
                    "type": "VPCSDevice"
                },
                {
                    "server_id": 3,
                    "type": "QemuVM"
                }
            ]
        }
    }

    with open(str(tmpdir / "project.gns3"), 'w+') as f:
        json.dump(topology, f)
    with open(str(tmpdir / "b.png"), 'w+') as f:
        f.write("B")

    zip_path = str(tmpdir / "project.zip")
    with zipfile.ZipFile(zip_path, 'w') as myzip:
        myzip.write(str(tmpdir / "project.gns3"), "project.gns3")
        myzip.write(str(tmpdir / "b.png"), "b.png")
        myzip.write(str(tmpdir / "b.png"), "project-files/dynamips/test")
        myzip.write(str(tmpdir / "b.png"), "project-files/qemu/test")

    with open(zip_path, "rb") as f:
        project.import_zip(f)

    assert os.path.exists(os.path.join(project.path, "b.png"))
    assert os.path.exists(os.path.join(project.path, "test.gns3"))
    assert os.path.exists(os.path.join(project.path, "project-files/dynamips/test"))
    assert os.path.exists(os.path.join(project.path, "servers/vm/project-files/qemu/test"))

    with open(os.path.join(project.path, "test.gns3")) as f:
        content = json.load(f)

    assert content["name"] == "test"
    assert content["project_id"] == project_id
    assert content["topology"]["servers"] == [
        {
            "id": 1,
            "local": True,
            "vm": False
        },
        {
            "id": 2,
            "local": False,
            "vm": True
        },
    ]
    assert content["topology"]["nodes"][0]["server_id"] == 1
    assert content["topology"]["nodes"][1]["server_id"] == 2