Skip to content

Commit

Permalink
refactor(all): update copyright and remove deprecated functions
Browse files Browse the repository at this point in the history
  • Loading branch information
deveaud-m committed Aug 9, 2023
1 parent 0a04bf4 commit 4014ae8
Show file tree
Hide file tree
Showing 31 changed files with 55 additions and 99 deletions.
39 changes: 0 additions & 39 deletions .github/workflows/foss_cli_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,42 +47,3 @@ jobs:
poetry run coverage run --source=fossology -m pytest tests/test_foss_cli*.py
poetry run coverage report -m
continue-on-error: true

test-last_release:
name: foss_cli tests (Fossology 4.1.0)
runs-on: ubuntu-latest

container:
image: python:3.11-slim
volumes:
- /tmp:/tmp

services:
fossology:
image: fossology/fossology:4.1.0
ports:
- 8081:80
volumes:
- /tmp:/tmp

steps:
- uses: actions/checkout@v1
- name: Install host dependencies
run: |
apt-get -qq update
apt-get install -qq gcc git nmap xz-utils
rm -rf /var/lib/apt/lists/*
- name: Install Python dependencies
run: |
pip install poetry
poetry install --with=dev
- name: Install files in shared volume
run: |
tar xJf tests/files/base-files_11.tar.xz -C /tmp
- name: Check services
run: nmap fossology -p 80
- name: Run tests
run: |
poetry run coverage run --source=fossology -m pytest tests/test_foss_cli*.py
poetry run coverage report -m
3 changes: 1 addition & 2 deletions docs-source/sample_workflow.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ Login to the Fossology Server
Create the Fossology Instance.


>>> # The username is only needed for Fossology API version < 1.2.3
>>> foss = Fossology(FOSSOLOGY_SERVER, token, name=os.environ["FOSSOLOGY_USER"])
>>> foss = Fossology(FOSSOLOGY_SERVER, token)
>>> print(f"Logged in as user {foss.user.name}")
Logged in as user fossy

Expand Down
29 changes: 5 additions & 24 deletions fossology/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
import re
from datetime import date, timedelta

import requests
Expand Down Expand Up @@ -68,7 +67,7 @@ def fossology_token(
response = requests.post(url + "/api/v1/tokens", data=data)
if response.status_code == 201:
token = response.json()["Authorization"]
return re.sub("Bearer ", "", token)
return token.replace("Bearer ", "")
elif response.status_code == 404:
description = "Authentication error"
raise AuthenticationError(description, response)
Expand All @@ -88,14 +87,12 @@ class Fossology(Folders, Groups, LicenseEndpoint, Uploads, Jobs, Report, Users,
:Example:
>>> from fossology import Fossology
>>> foss = Fossology(FOSS_URL, FOSS_TOKEN, username) # doctest: +SKIP
>>> foss = Fossology(FOSS_URL, FOSS_TOKEN) # doctest: +SKIP
:param url: URL of the Fossology instance
:param token: The API token generated using the Fossology UI
:param name: The name of the token owner (deprecated since API version 1.2.3)
:type url: str
:type token: str
:type name: str (deprecated since API version 1.2.3)
:raises FossologyApiError: if a REST call failed
:raises AuthenticationError: if the user couldn't be authenticated
"""
Expand All @@ -112,7 +109,7 @@ def __init__(self, url, token, name=None):
self.version = self.get_version()
self.info = self.get_info()
self.health = self.get_health()
self.user = self.get_self(name)
self.user = self.get_self()
self.name = self.user.name
self.rootFolder = self.detail_folder(self.user.rootFolderId)
self.folders = self.list_folders()
Expand All @@ -121,7 +118,7 @@ def __init__(self, url, token, name=None):
f"Authenticated as {self.user.name} against {self.host} using API version {self.version}"
)

def get_self(self, name=None):
def get_self(self):
"""Perform the first API request and populate user variables
API Endpoint: GET /users/self
Expand All @@ -147,22 +144,6 @@ def get_self(self, name=None):
def close(self):
self.session.close()

def get_version(self):
"""Get API version from the server
API endpoint: GET /version (deprecated since API version 1.3.3)
:return: the API version string
:rtype: string
:raises FossologyApiError: if the REST call failed
"""
response = self.session.get(f"{self.api}/version")
if response.status_code == 200:
return response.json()["version"]
else:
description = "Error while getting API version"
raise FossologyApiError(description, response)

def get_info(self) -> ApiInfo:
"""Get info from the server
Expand Down
3 changes: 3 additions & 0 deletions fossology/__main__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """
Allows to run the foss_cli with: python -m fossology
"""
Expand Down
2 changes: 1 addition & 1 deletion fossology/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

from json.decoder import JSONDecodeError
Expand Down
4 changes: 2 additions & 2 deletions fossology/folders.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
Expand Down Expand Up @@ -99,7 +99,7 @@ def create_folder(
logger.info(
f"Folder '{name}' already exists under the folder {parent.name} ({parent.id})"
)
# Foldernames with similar letter but different cases
# Folder names with similar letter but different cases
# are not allowed in Fossology, compare with lower case
existing_folder = [
folder
Expand Down
19 changes: 5 additions & 14 deletions fossology/foss_cli.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """
The foss_cli cmdline interface uses the provided REST-API to communicate
with the Fossology Server.
Expand All @@ -20,11 +23,7 @@
import click

from fossology import Fossology, fossology_token
from fossology.exceptions import (
AuthenticationError,
FossologyApiError,
FossologyUnsupported,
)
from fossology.exceptions import FossologyApiError, FossologyUnsupported
from fossology.obj import AccessLevel, Folder, ReportFormat, Summary, TokenScope

logger = logging.getLogger(__name__)
Expand All @@ -46,7 +45,6 @@
"copyright_email_author": True,
"ecc": True,
"keyword": True,
"monk": True,
"mime": True,
"monk": True,
"nomos": True,
Expand Down Expand Up @@ -219,14 +217,7 @@ def init_foss(ctx: click.Context):
"No Token provided. Either provide FOSS_TOKEN in environment or use the -t option."
)
raise e
try:
foss = Fossology(ctx.obj["SERVER"], ctx.obj["TOKEN"]) # using new API
except AuthenticationError: # API version < 1.2.3 requires a username
foss = Fossology(
ctx.obj["SERVER"],
ctx.obj["TOKEN"],
name=ctx.obj["USERNAME"],
)
foss = Fossology(ctx.obj["SERVER"], ctx.obj["TOKEN"]) # using new API
ctx.obj["FOSS"] = foss
ctx.obj["USER"] = foss.user.name
logger.debug(f"Logged in as user {foss.user.name}")
Expand Down
2 changes: 1 addition & 1 deletion fossology/groups.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
Expand Down
2 changes: 1 addition & 1 deletion fossology/jobs.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import json
Expand Down
2 changes: 1 addition & 1 deletion fossology/license.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import json
Expand Down
2 changes: 1 addition & 1 deletion fossology/obj.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import json
Expand Down
2 changes: 1 addition & 1 deletion fossology/report.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
Expand Down
2 changes: 1 addition & 1 deletion fossology/uploads.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT
import json
import logging
Expand Down
2 changes: 1 addition & 1 deletion fossology/users.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# mypy: disable-error-code="attr-defined"
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT
import logging

Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
Expand Down
2 changes: 1 addition & 1 deletion tests/test_folders.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import secrets
Expand Down
3 changes: 3 additions & 0 deletions tests/test_foss_cli_create_cmds.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2022 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """Test 'create_*' sub commands of foss_cli"""

import time
Expand Down
3 changes: 3 additions & 0 deletions tests/test_foss_cli_flow_cmds.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2022 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """Test the "workflow" sub commands of foss_cli"""
import configparser
import os
Expand Down
3 changes: 3 additions & 0 deletions tests/test_foss_cli_help.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2022 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """Test the "help" text of the different sub commands of foss_cli"""

from fossology import foss_cli
Expand Down
3 changes: 3 additions & 0 deletions tests/test_foss_cli_logger.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2022 Siemens AG
# SPDX-License-Identifier: MIT

__doc__ = """Test the logging of the foss_cli
foss_cli distinguishes the verbosity levels 0,1,2
defined in foss_cli.py
Expand Down
3 changes: 3 additions & 0 deletions tests/test_foss_cli_start_workflow.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2022 Siemens AG
# SPDX-License-Identifier: MIT

from pathlib import PurePath

from fossology import foss_cli
Expand Down
2 changes: 1 addition & 1 deletion tests/test_groups.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import secrets
Expand Down
2 changes: 1 addition & 1 deletion tests/test_jobs.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import secrets
Expand Down
2 changes: 1 addition & 1 deletion tests/test_license.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

from unittest.mock import MagicMock
Expand Down
2 changes: 1 addition & 1 deletion tests/test_report.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import mimetypes
Expand Down
2 changes: 1 addition & 1 deletion tests/test_search.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import secrets
Expand Down
2 changes: 1 addition & 1 deletion tests/test_upload_from.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

from fossology import Fossology
Expand Down
3 changes: 3 additions & 0 deletions tests/test_upload_licenses_copyrights.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2023 Siemens AG
# SPDX-License-Identifier: MIT

import pytest
import responses
from tenacity import RetryError
Expand Down
3 changes: 3 additions & 0 deletions tests/test_upload_permissions.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright 2023 Siemens AG
# SPDX-License-Identifier: MIT

import secrets

import pytest
Expand Down
2 changes: 1 addition & 1 deletion tests/test_uploads.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import mimetypes
Expand Down
2 changes: 1 addition & 1 deletion tests/test_users.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Siemens AG
# Copyright 2019 Siemens AG
# SPDX-License-Identifier: MIT

import logging
Expand Down

0 comments on commit 4014ae8

Please sign in to comment.