Skip to content

Commit

Permalink
add license tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JarbasAl committed Feb 14, 2022
1 parent f3dd5fe commit 5abb603
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 1 deletion.
35 changes: 35 additions & 0 deletions .github/workflows/license_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Run License Tests
on:
push:
workflow_dispatch:

jobs:
license_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install Build Tools
run: |
python -m pip install build wheel
- name: Install System Dependencies
run: |
sudo apt-get update
sudo apt install python3-dev swig libssl-dev
- name: Install core repo
run: |
pip install .
- name: Install licheck
run: |
pip install git+https://github.com/NeonJarbas/lichecker
- name: Install test dependencies
run: |
pip install pytest pytest-timeout pytest-cov
- name: Test Licenses
run: |
pytest test/license_tests.py
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
recursive-include ovos_utils/res *
recursive-include requirements *
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def required(requirements_file):

setup(
name='ovos_utils',
version='0.0.14a6',
version='0.0.14a7',
packages=['ovos_utils',
'ovos_utils.intents',
'ovos_utils.sound',
Expand Down
55 changes: 55 additions & 0 deletions test/license_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import unittest
from pprint import pprint

from lichecker import LicenseChecker

# these packages dont define license in setup.py
# manually verified and injected
license_overrides = {
"kthread": "MIT",
'yt-dlp': "Unlicense",
'pyxdg': 'GPL-2.0',
'ptyprocess': 'ISC license',
'psutil': 'BSD3'
}
# explicitly allow these packages that would fail otherwise
whitelist = [
'idna' # BSD-like
]

# validation flags
allow_nonfree = False
allow_viral = False
allow_unknown = False
allow_unlicense = True
allow_ambiguous = False

pkg_name = "ovos-utils"


class TestLicensing(unittest.TestCase):
@classmethod
def setUpClass(self):
licheck = LicenseChecker(pkg_name,
license_overrides=license_overrides,
whitelisted_packages=whitelist,
allow_ambiguous=allow_ambiguous,
allow_unlicense=allow_unlicense,
allow_unknown=allow_unknown,
allow_viral=allow_viral,
allow_nonfree=allow_nonfree)
print("Package", pkg_name)
print("Version", licheck.version)
print("License", licheck.license)
print("Transient Requirements (dependencies of dependencies)")
pprint(licheck.transient_dependencies)
self.licheck = licheck

def test_license_compliance(self):
print("Package Versions")
pprint(self.licheck.versions)

print("Dependency Licenses")
pprint(self.licheck.licenses)

self.licheck.validate()

0 comments on commit 5abb603

Please sign in to comment.