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
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