コード例 #1
0
def test_image_dir_name(microcore_appliance):

    assert Appliance(registry,
                     "tests/registry/appliances/microcore-linux.gns3a"
                     ).image_dir_name() == "QEMU"
    assert Appliance(registry, "tests/registry/appliances/cisco-iou-l3.gns3a"
                     ).image_dir_name() == "IOU"
コード例 #2
0
def test_check_config(tmpdir, registry):

    test_path = str(tmpdir / "test.json")

    with open(test_path, "w+", encoding="utf-8") as f:
        f.write("")

    with pytest.raises(ApplianceError):
        Appliance(registry, "jkhj")

    with pytest.raises(ApplianceError):
        Appliance(registry, test_path)

    with open(test_path, "w+", encoding="utf-8") as f:
        f.write("{}")

    with pytest.raises(ApplianceError):
        Appliance(registry, test_path)

    with pytest.raises(ApplianceError):
        with open(test_path, "w+", encoding="utf-8") as f:
            f.write('{"registry_version": 42}')
        Appliance(registry, test_path)

    Appliance(registry, "tests/registry/appliances/microcore-linux.json")
コード例 #3
0
ファイル: test_appliance.py プロジェクト: yangkf1985/gns3-gui
def test_emulator():
    assert Appliance(
        registry,
        "tests/registry/appliances/microcore-linux.gns3a").emulator() == "qemu"
    assert Appliance(
        registry,
        "tests/registry/appliances/cisco-iou-l3.gns3a").emulator() == "iou"
コード例 #4
0
def test_create_new_version(microcore_appliance):

    a = Appliance(registry, "tests/registry/appliances/microcore-linux.gns3a")
    a.create_new_version("42.0")
    v = a['versions'][-1:][0]
    assert v == {
        'images': {
            'hda_disk_image': {
                'filename': 'linux-microcore-42.0.img',
                'version': '42.0'
            }
        },
        'name': '42.0'
    }
コード例 #5
0
ファイル: test_appliance.py プロジェクト: yangkf1985/gns3-gui
def test_create_new_version():
    appliance_path = os.path.join(os.path.dirname(__file__), "appliances",
                                  "microcore-linux.gns3a")

    a = Appliance(registry, appliance_path)

    a.create_new_version("42.0")
    v = a['versions'][-1:][0]
    assert v == {
        'images': {
            'hda_disk_image': {
                'filename': 'linux-microcore-42.0.img',
                'version': '42.0'
            }
        },
        'name': '42.0'
    }

    # tests what happens without versions in file
    wrong_appliance_fp, wrong_appliance_file = tempfile.mkstemp()

    with open(appliance_path) as f:
        appliance = json.loads(f.read())
        del appliance['versions']
        os.write(wrong_appliance_fp, json.dumps(appliance).encode())
        os.close(wrong_appliance_fp)

    a = Appliance(registry, wrong_appliance_file)
    with pytest.raises(ApplianceError):
        a.create_new_version("42.0")

    os.remove(wrong_appliance_file)
コード例 #6
0
ファイル: test_appliance.py プロジェクト: AJNOURI/gns3-gui
def test_create_new_version(microcore_appliance):

    a = Appliance(registry, "tests/registry/appliances/microcore-linux.json")
    a.create_new_version("42.0")
    v = a['versions'][-1:][0]
    assert v == {
        'images':
        {
            'hda_disk_image':
                {
                    'filename': 'linux-microcore-42.0.img',
                    'version': '42.0'
                }
        },
        'name': '42.0'
    }
コード例 #7
0
ファイル: test_appliance.py プロジェクト: yunpub/gns3-gui
def microcore_appliance(registry):
    """
    An instance of microcore Appliance object
    """
    return Appliance(
        registry,
        os.path.abspath("tests/registry/appliances/microcore-linux.gns3a"))
コード例 #8
0
def test_resolve_docker(tmpdir):

    with open("tests/registry/appliances/openvswitch.gns3a",
              encoding="utf-8") as f:
        config = json.load(f)

    new_config = Appliance(registry,
                           "tests/registry/appliances/openvswitch.gns3a")
コード例 #9
0
def test_resolve_version(tmpdir):

    with open("tests/registry/appliances/microcore-linux.json", encoding="utf-8") as f:
        config = json.load(f)

    hda = config["images"][0]

    new_config = Appliance(registry, "tests/registry/appliances/microcore-linux.json")
    assert new_config["versions"][0]["images"] == {"hda_disk_image": hda}
コード例 #10
0
def test_resolve_version_dynamips(tmpdir):

    with open("tests/registry/appliances/cisco-3745.gns3a", encoding="utf-8") as f:
        config = json.load(f)

    hda = config["images"][0]
    hda["idlepc"] = "0x60aa1da0"

    new_config = Appliance(registry, "tests/registry/appliances/cisco-3745.gns3a")
    assert new_config["versions"][0]["images"] == {"image": hda}
コード例 #11
0
def test_check_config(tmpdir, registry):

    test_path = str(tmpdir / "test.gns3a")

    with open(test_path, "w+", encoding="utf-8") as f:
        f.write("")

    with pytest.raises(ApplianceError):
        Appliance(registry, "jkhj")

    with pytest.raises(ApplianceError):
        Appliance(registry, test_path)

    with open(test_path, "w+", encoding="utf-8") as f:
        f.write("{}")

    with pytest.raises(ApplianceError):
        Appliance(registry, test_path)

    with pytest.raises(ApplianceError):
        with open(test_path, "w+", encoding="utf-8") as f:
            f.write('{"registry_version": 42}')
        Appliance(registry, test_path)

    # Will raise an error due to JSON schema invalid
    with open("tests/registry/appliances/microcore-linux.gns3a",
              encoding="utf-8") as f:
        config = json.load(f)
        config["images"][0]["md5sum"] = "broken"
        with open(test_path, "w+", encoding="utf-8") as f:
            json.dump(config, f)
    with pytest.raises(ApplianceError):
        Appliance(registry, test_path)

    Appliance(registry, "tests/registry/appliances/microcore-linux.gns3a")
コード例 #12
0
ファイル: test_appliance.py プロジェクト: maherja/gns3-gui
def test_create_new_version():
    appliance_path = os.path.join(
        os.path.dirname(__file__), "appliances", "microcore-linux.gns3a")

    a = Appliance(registry, appliance_path)

    a.create_new_version("42.0")
    v = a['versions'][-1:][0]
    assert v == {
        'images':
        {
            'hda_disk_image':
                {
                    'filename': 'linux-microcore-42.0.img',
                    'version': '42.0'
                }
        },
        'name': '42.0'
    }

    # tests what happens without versions in file
    wrong_appliance_fp, wrong_appliance_file = tempfile.mkstemp()

    with open(appliance_path) as f:
        appliance = json.loads(f.read())
        del appliance['versions']
        os.write(wrong_appliance_fp, json.dumps(appliance).encode())
        os.close(wrong_appliance_fp)

    a = Appliance(registry, wrong_appliance_file)
    with pytest.raises(ApplianceError):
        a.create_new_version("42.0")

    os.remove(wrong_appliance_file)
コード例 #13
0
def test_resolve_version_ova(tmpdir):

    with open("tests/registry/appliances/juniper-vsrx.gns3a", encoding="utf-8") as f:
        config = json.load(f)

    hda = config["images"][0]
    hda["filename"] = os.path.join("junos-vsrx-12.1X47-D10.4-domestic.ova", "junos-vsrx-12.1X47-D10.4-domestic-disk1.vmdk")

    new_config = Appliance(registry, "tests/registry/appliances/juniper-vsrx.gns3a")

    assert new_config["versions"][0]["images"] == {
        "hda_disk_image": hda
    }
コード例 #14
0
def test_resolve_version_invalid_file(tmpdir):

    with pytest.raises(ApplianceError):
        Appliance(registry, "tests/registry/appliances/broken-microcore-linux.json")
コード例 #15
0
def microcore_appliance(registry):
    """
    An instance of microcore Appliance object
    """
    return Appliance(registry, "tests/registry/appliances/microcore-linux.json")