示例#1
0
def test_copy_single_distro_files(create_kernel_initrd, fk_initrd, fk_kernel):
    # Arrange
    # Create fake files
    directory = create_kernel_initrd(fk_kernel, fk_initrd)
    # Create test API
    test_api = CobblerAPI()
    # Get Collection Manager used by the API
    test_collection_mgr = test_api._collection_mgr
    # Create a test Distro
    test_distro = Distro(test_api)
    test_distro.name = "test_copy_single_distro_files"
    test_distro.kernel = str(os.path.join(directory, fk_kernel))
    test_distro.initrd = str(os.path.join(directory, fk_initrd))
    # Add test distro to the API
    test_api.add_distro(test_distro)
    # Create class under test
    test_gen = tftpgen.TFTPGen(test_collection_mgr)

    # Act
    test_gen.copy_single_distro_files(test_distro, directory, False)

    # Assert that path created by function under test is actually there
    result_kernel = os.path.join(directory, "images", test_distro.name,
                                 fk_kernel)
    result_initrd = os.path.join(directory, "images", test_distro.name,
                                 fk_initrd)
    assert os.path.exists(result_kernel)
    assert os.path.exists(result_initrd)
示例#2
0
    def test_generate_profile(self, api, create_kernel_initrd, fk_kernel,
                              fk_initrd, cleanup_items):
        # Arrange
        folder = create_kernel_initrd(fk_kernel, fk_initrd)
        kernel_path = os.path.join(folder, fk_kernel)
        initrd_path = os.path.join(folder, fk_initrd)
        test_distro = Distro(api)
        test_distro.name = "testdistro"
        test_distro.kernel = kernel_path
        test_distro.initrd = initrd_path
        api.add_distro(test_distro)
        test_profile = Profile(api)
        test_profile.name = "testprofile"
        test_profile.distro = test_distro.name
        api.add_profile(test_profile)
        blendered_data = utils.blender(api, False, test_profile)
        test_builder = AppendLineBuilder(test_distro.name, blendered_data)

        # Act
        result = test_builder.generate_profile("suse")

        # Assert
        # Very basic test yes but this is the expected result atm
        # TODO: Make tests more sophisticated
        assert (
            result ==
            " append initrd=testdistro.img install=http://127.0.0.1:80/cblr/links/testdistro autoyast=default.ks"
        )
示例#3
0
    def test_standalone_run(
        self,
        api,
        create_kernel_initrd,
        fk_kernel,
        fk_initrd,
        create_loaders,
        tmpdir_factory,
        cleanup_items,
    ):
        # Arrange
        iso_directory = tmpdir_factory.mktemp("isodir")
        iso_source = tmpdir_factory.mktemp("isosource")
        iso_location = iso_directory.join("autoinst.iso")
        folder = create_kernel_initrd(fk_kernel, fk_initrd)
        kernel_path = os.path.join(folder, fk_kernel)
        initrd_path = os.path.join(folder, fk_initrd)
        test_distro = Distro(api)
        test_distro.name = "testdistro"
        test_distro.kernel = kernel_path
        test_distro.initrd = initrd_path
        api.add_distro(test_distro)
        build_iso = StandaloneBuildiso(api)

        # Act
        build_iso.run(iso=str(iso_location),
                      distro_name=test_distro.name,
                      source=str(iso_source))

        # Assert
        assert iso_location.exists()
示例#4
0
    def test_netboot_run(
        self,
        api,
        create_kernel_initrd,
        fk_kernel,
        fk_initrd,
        cleanup_items,
        create_loaders,
        tmpdir,
    ):
        # Arrange
        folder = create_kernel_initrd(fk_kernel, fk_initrd)
        kernel_path = os.path.join(folder, fk_kernel)
        initrd_path = os.path.join(folder, fk_initrd)
        test_distro = Distro(api)
        test_distro.name = "testdistro"
        test_distro.kernel = kernel_path
        test_distro.initrd = initrd_path
        api.add_distro(test_distro)
        build_iso = NetbootBuildiso(api)
        iso_location = tmpdir.join("autoinst.iso")

        # Act
        build_iso.run(iso=str(iso_location), distro_name=test_distro.name)

        # Assert
        assert iso_location.exists()
示例#5
0
    def test_filter_system(self, api, create_kernel_initrd, fk_kernel,
                           fk_initrd):
        # Arrange
        folder = create_kernel_initrd(fk_kernel, fk_initrd)
        kernel_path = os.path.join(folder, fk_kernel)
        initrd_path = os.path.join(folder, fk_initrd)
        test_distro = Distro(api)
        test_distro.name = "testdistro"
        test_distro.kernel = kernel_path
        test_distro.initrd = initrd_path
        api.add_distro(test_distro)
        test_profile = Profile(api)
        test_profile.name = "testprofile"
        test_profile.distro = test_distro.name
        api.add_profile(test_profile)
        test_system = System(api)
        test_system.name = "testsystem"
        test_system.profile = test_profile.name
        api.add_system(test_system)
        itemlist = [test_system.name]
        build_iso = NetbootBuildiso(api)
        expected_result = [test_system]

        # Act
        result = build_iso.filter_systems(itemlist)

        # Assert
        assert expected_result == result
示例#6
0
def test_non_equality():
    # Arrange
    test_api = CobblerAPI()
    distro1 = Distro(test_api)
    distro2 = Distro(test_api)

    # Act & Assert
    assert distro1 != distro2
    assert "" != distro1
示例#7
0
def test_to_dict_from_fields():
    # Arrange
    test_api = CobblerAPI()
    test_distro = Distro(test_api._collection_mgr)

    # Act
    result = utils.to_dict_from_fields(test_distro, test_distro.get_fields())

    # Assert - This test is specific to a Distro object
    assert len(result.keys()) == 25
示例#8
0
def test_source_repos(value):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    distro.source_repos = value

    # Assert
    assert distro.source_repos == value
示例#9
0
def test_owners(value):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    distro.owners = value

    # Assert
    assert distro.owners == value
示例#10
0
def test_mgmt_classes(value):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    distro.mgmt_classes = value

    # Assert
    assert distro.mgmt_classes == value
示例#11
0
def test_redhat_management_key(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.redhat_management_key = value

        # Assert
        assert distro.redhat_management_key == value
示例#12
0
def test_os_version(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.os_version = value

        # Assert
        assert distro.os_version == value
示例#13
0
def test_to_string_from_fields():
    # Arrange
    test_api = CobblerAPI()
    test_manager = CollectionManager(test_api)
    test_distro = Distro(test_manager)

    # Act
    result = utils.to_string_from_fields(test_distro.__dict__, test_distro.get_fields())

    # Assert - This test is specific to a Distro object
    assert len(result.splitlines()) == 19
示例#14
0
def test_get_setter_methods_from_fields():
    # Arrange
    test_api = CobblerAPI()
    test_manager = CollectionManager(test_api)
    test_distro = Distro(test_manager)

    # Act
    result = utils.get_setter_methods_from_fields(test_distro, test_distro.get_fields())

    # Assert
    assert isinstance(result, dict)
示例#15
0
def test_fetchable_files(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.fetchable_files = value

        # Assert
        assert distro.fetchable_files == value
示例#16
0
def test_remote_grub_kernel(value):
    # Arrange
    # FIXME: This shouldn't succeed
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    distro.remote_grub_kernel = value

    # Assert
    assert distro.remote_grub_kernel == value
示例#17
0
def test_tree_build_time(value, expected):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected:
        distro.tree_build_time = value

        # Assert
        assert distro.tree_build_time == value
示例#18
0
def test_remote_grub_initrd(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.remote_grub_initrd = value

        # Assert
        assert distro.remote_grub_initrd == value
示例#19
0
def test_check_if_valid():
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)
    distro.name = "testname"

    # Act
    distro.check_if_valid()

    # Assert
    assert True
示例#20
0
def test_breed(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    utils.load_signatures("/var/lib/cobbler/distro_signatures.json")
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.breed = value

        # Assert
        assert distro.breed == value
示例#21
0
def test_find_distro_path():
    # Arrange
    test_api = CobblerAPI()
    test_manager = CollectionManager(test_api)
    test_distro = Distro(test_manager)
    test_distro.kernel = "/dev/shm/fakekernelfile"

    # Act
    result = utils.find_distro_path(test_manager.settings(), test_distro)

    # Assert
    assert result == "/dev/shm"
示例#22
0
def test_kernel(value, expected_exception):
    # TODO: Create fake kernel so we can set it successfully
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.kernel = value

        # Assert
        assert distro.kernel == value
示例#23
0
def test_remote_boot_initrd(value, expected_exception):
    # TODO: Create fake initrd to have a real test
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.remote_boot_initrd = value

        # Assert
        assert distro.remote_boot_initrd == value
示例#24
0
def test_to_dict():
    # Arrange
    test_api = CobblerAPI()
    titem = Distro(test_api)

    # Act
    result = titem.to_dict()

    # Assert
    assert isinstance(result, dict)
    assert "autoinstall_meta" in result
    assert "ks_meta" in result
示例#25
0
def test_remote_boot_kernel(value, expected_exception):
    # Arrange
    # TODO: Create fake kernel so we can test positive paths
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.remote_boot_kernel = value

        # Assert
        assert distro.remote_boot_kernel == value
示例#26
0
def test_find_distro_path(create_testfile, tmp_path):
    # Arrange
    test_api = CobblerAPI()
    fk_kernel = "vmlinuz1"
    create_testfile(fk_kernel)
    test_distro = Distro(test_api)
    test_distro.kernel = os.path.join(tmp_path, fk_kernel)

    # Act
    result = utils.find_distro_path(Settings(), test_distro)

    # Assert
    assert result == tmp_path.as_posix()
示例#27
0
def test_set_os_version():
    # Arrange
    test_api = CobblerAPI()
    test_manager = CollectionManager(test_api)
    testdistro = Distro(test_manager)
    testdistro.set_breed("redhat")

    # Act
    utils.set_os_version(testdistro, "rhel4")

    # Assert
    assert testdistro.breed == "redhat"
    assert testdistro.os_version == "rhel4"
示例#28
0
def test_clear_from_fields():
    # Arrange
    test_api = CobblerAPI()
    test_distro = Distro(test_api._collection_mgr)
    test_distro.name = "Test"

    # Pre Assert to check this works
    assert test_distro.name == "Test"

    # Act
    utils.clear_from_fields(test_distro, test_distro.get_fields())

    # Assert
    assert test_distro.name == ""
示例#29
0
def test_arch(value, expected):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected:
        distro.arch = value

        # Assert
        if isinstance(value, str):
            assert distro.arch.value == value
        else:
            assert distro.arch == value
示例#30
0
def test_boot_loaders(value, expected_exception):
    # Arrange
    test_api = CobblerAPI()
    distro = Distro(test_api)

    # Act
    with expected_exception:
        distro.boot_loaders = value

        # Assert
        if value == "":
            assert distro.boot_loaders == []
        else:
            assert distro.boot_loaders == value