def test_paginated_list_uploads(foss: Fossology, upload: Upload, test_file_path: str): if versiontuple(foss.version) < versiontuple("1.1.1"): # Upload pagination not available yet return # Add a second upload second_upload = foss.upload_file( foss.rootFolder, file=test_file_path, description="Test second upload via fossology-python lib", access_level=AccessLevel.PUBLIC, ) time.sleep(3) uploads, _ = foss.list_uploads(page_size=1, page=1) assert len(uploads) == 1 uploads, _ = foss.list_uploads(page_size=1, page=2) assert len(uploads) == 1 uploads, _ = foss.list_uploads(page_size=2, page=1) assert len(uploads) == 2 uploads, _ = foss.list_uploads(page_size=1, all_pages=True) num_known_uploads = 0 for up in uploads: if up.description in ( "Test upload via fossology-python lib", "Test second upload via fossology-python lib", ): num_known_uploads += 1 assert num_known_uploads >= 2 foss.delete_upload(second_upload)
def test_delete_unknown_upload_unknown_group(foss: Fossology): if versiontuple(foss.version) > versiontuple("1.0.16"): upload = Upload( foss.rootFolder, "Root Folder", secrets.randbelow(1000), "", "Non Upload", "2020-05-05", hash={ "sha1": None, "md5": None, "sha256": None, "size": None }, ) else: upload = Upload( foss.rootFolder, "Root Folder", secrets.randbelow(1000), "", "Non Upload", "2020-05-05", filesize="1024", filesha1="597d209fd962f401866f12db9fa1f7301aee15a9", ) with pytest.raises(FossologyApiError): foss.delete_upload(upload) with pytest.raises(AuthorizationError) as excinfo: foss.delete_upload(upload, group="test") assert f"Deleting upload {upload.id} for group test not authorized" in str( excinfo.value)
def upload(foss: Fossology, test_file_path: str) -> Upload: test_upload = foss.upload_file( foss.rootFolder, file=test_file_path, description="Test upload via fossology-python lib", access_level=AccessLevel.PUBLIC, ) time.sleep(3) yield test_upload foss.delete_upload(test_upload)
def scanned_upload(foss: Fossology, test_file_path: str, foss_schedule_agents: Dict) -> Upload: test_upload = foss.upload_file( foss.rootFolder, file=test_file_path, description="Test upload via fossology-python lib", access_level=AccessLevel.PUBLIC, ) time.sleep(3) foss.schedule_jobs(foss.rootFolder, test_upload, foss_schedule_agents) yield test_upload foss.delete_upload(test_upload)
def test_upload_from_server(foss: Fossology): server = { "path": "/tmp/base-files-11", "name": "base-files-11", } server_upload = foss.upload_file( foss.rootFolder, server=server, description="Test upload from server via python lib", access_level=AccessLevel.PUBLIC, ) assert server_upload.uploadname == server["name"] # Cleanup foss.delete_upload(server_upload)
def test_delete_unknown_upload(foss: Fossology): upload = Upload( foss.rootFolder, "Root Folder", secrets.randbelow(1000), "", "Non Upload", "2020-05-05", { "sha1": None, "md5": None, "sha256": None, "size": None }, ) with pytest.raises(FossologyApiError): foss.delete_upload(upload)
def test_upload_from_vcs(foss: Fossology): vcs = { "vcsType": "git", "vcsUrl": "https://github.com/fossology/fossology-python", "vcsName": "fossology-python-github-master", "vcsUsername": "", "vcsPassword": "", } vcs_upload = foss.upload_file( foss.rootFolder, vcs=vcs, description="Test upload from github repository via python lib", access_level=AccessLevel.PUBLIC, ) assert vcs_upload.uploadname == vcs["vcsName"] search_result = foss.search(searchType=SearchTypes.DIRECTORIES, filename=".git",) assert not search_result foss.delete_upload(vcs_upload)
def test_upload_from_url(foss: Fossology): url = { "url": "https://github.com/fossology/fossology-python/archive/master.zip", "name": "fossology-python-master.zip", "accept": "zip", "reject": "", "maxRecursionDepth": "1", } url_upload = foss.upload_file( foss.rootFolder, url=url, description="Test upload from url via python lib", access_level=AccessLevel.PUBLIC, ) assert url_upload.uploadname == url["name"] # Cleanup foss.delete_upload(url_upload)
def test_upload_ignore_scm(foss: Fossology): vcs = { "vcsType": "git", "vcsUrl": "https://github.com/fossology/fossology-python", "vcsName": "fossology-python-github-master", "vcsUsername": "", "vcsPassword": "", } vcs_upload = foss.upload_file( foss.rootFolder, vcs=vcs, description="Test upload with ignore_scm flag", ignore_scm=False, access_level=AccessLevel.PUBLIC, ) assert vcs_upload.uploadname == vcs["vcsName"] # FIXME: shall be fixed in the next release # assert foss.search( # searchType=SearchTypes.DIRECTORIES, filename=".git", # ) == $something # Cleanup foss.delete_upload(vcs_upload)
def test_delete_upload_nogroup(foss: Fossology, upload: Upload): with pytest.raises(AuthorizationError) as excinfo: foss.delete_upload(upload, group="test") assert f"Deleting upload {upload.id} for group test not authorized" in str( excinfo.value)