예제 #1
0
def test_delete_folder_error(foss_server: str, foss: Fossology):
    folder = Folder(secrets.randbelow(1000), "Folder", "", foss.rootFolder)
    responses.add(
        responses.DELETE, f"{foss_server}/api/v1/folders/{folder.id}", status=404
    )
    with pytest.raises(FossologyApiError) as excinfo:
        foss.delete_folder(folder)
    assert f"Unable to delete folder {folder.id}" in str(excinfo.value)
예제 #2
0
def test_delete_folder(foss: Fossology):
    folder = foss.create_folder(foss.rootFolder, "ToBeDeleted",
                                "Test folder deletion via API")
    foss.delete_folder(folder)
    time.sleep(3)
    with pytest.raises(FossologyApiError) as excinfo:
        foss.detail_folder(folder)
    assert f"Error while getting details for folder ToBeDeleted ({folder.id})" in str(
        excinfo.value)
예제 #3
0
def test_copy_upload(foss: Fossology, upload: Upload):
    copy_upload_folder = foss.create_folder(foss.rootFolder,
                                            "CopyUploadFolder")
    foss.copy_upload(upload, copy_upload_folder)
    copied_upload = foss.detail_upload(upload.id)
    assert copied_upload
    # Upload should be visible twice but it isn't
    # Bug or Feature?
    # Cleanup
    foss.delete_folder(copy_upload_folder)
예제 #4
0
def test_move_folder(foss: Fossology):
    move_copy_folder = foss.create_folder(
        foss.rootFolder, "MoveCopyTest", "Test move() and copy() functions"
    )
    test_folder = foss.create_folder(
        foss.rootFolder, "TestFolder", "Folder to be moved and copied via API"
    )
    test_folder = foss.move_folder(test_folder, move_copy_folder)
    assert test_folder.parent == move_copy_folder.id

    # Cleanup
    foss.delete_folder(move_copy_folder)
예제 #5
0
def test_update_folder(foss: Fossology):
    name = "FossPythonFolderUpdate"
    desc = "Created via the Fossology Python API"
    update_folder = foss.create_folder(foss.rootFolder, name, desc)

    name = "NewFolderName"
    desc = "Updated via the Fossology Python API"
    update_folder = foss.update_folder(update_folder, name=name, description=desc)
    assert update_folder.name == name
    assert update_folder.description == desc

    # Cleanup
    foss.delete_folder(update_folder)
예제 #6
0
def test_create_folder_same_name_different_case(foss: Fossology):
    name = "FossTest"
    desc = "Created via the Fossology Python API"
    test_folder = foss.create_folder(foss.rootFolder, name, description=desc)
    assert test_folder.name == name
    assert test_folder.description == desc

    # Recreate folder with a different name to test API response 200
    same_folder = foss.create_folder(foss.rootFolder, "fOSStEST", description=desc)
    assert test_folder == same_folder

    # Cleanup
    foss.delete_folder(test_folder)
예제 #7
0
def test_create_folder(foss: Fossology):
    name = "FossPythonTest"
    desc = "Created via the Fossology Python API"
    test_folder = foss.create_folder(foss.rootFolder, name, description=desc)
    assert test_folder.name == name
    assert test_folder.description == desc

    # Recreate folder to test API response 200
    test_folder = foss.create_folder(foss.rootFolder, name, description=desc)
    assert test_folder.name == name

    # Cleanup
    foss.delete_folder(test_folder)
예제 #8
0
def test_copy_folder(foss: Fossology):
    move_copy_folder = foss.create_folder(
        foss.rootFolder, "MoveCopyTest", "Test move() and copy() functions"
    )
    test_folder = foss.create_folder(
        foss.rootFolder, "TestFolder", "Folder to be moved and copied via API"
    )
    folder_copy = foss.copy_folder(test_folder, move_copy_folder)
    folder_list = foss.list_folders()
    folder_copy = [
        folder
        for folder in folder_list
        if folder.parent == foss.rootFolder.id and folder.name == "TestFolder"
    ]
    assert folder_copy

    # Cleanup
    foss.delete_folder(move_copy_folder)
    foss.delete_folder(folder_copy[0])
예제 #9
0
def move_folder(foss: Fossology) -> Folder:
    folder = foss.create_folder(foss.rootFolder, "MoveUploadTest",
                                "Test move upload function")
    yield folder
    foss.delete_folder(folder)
예제 #10
0
def upload_folder(foss: Fossology) -> Folder:
    name = "FossPythonTestUploads"
    desc = "Created via the Fossology Python API"
    folder = foss.create_folder(foss.rootFolder, name, description=desc)
    yield folder
    foss.delete_folder(folder)