Skip to content

Commit 7f8aac2

Browse files
committed
Create test_license_compliance.py
1 parent d2da340 commit 7f8aac2

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/test/test_license_compliance.py

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import unittest
2+
import json
3+
from unittest.mock import patch, mock_open
4+
5+
class TestLicenseCompliance(unittest.TestCase):
6+
7+
def setUp(self):
8+
self.mock_dependency_licenses = '''
9+
[
10+
{
11+
"License": "BSD License",
12+
"Name": "Jinja2",
13+
"Version": "3.1.4"
14+
},
15+
{
16+
"License": "MIT License",
17+
"Name": "Mako",
18+
"Version": "1.3.5"
19+
},
20+
{
21+
"License": "BSD License",
22+
"Name": "MarkupSafe",
23+
"Version": "2.1.5"
24+
},
25+
{
26+
"License": "GPL-3.0",
27+
"Name": "SomeRestrictedPackage",
28+
"Version": "1.0.0"
29+
}
30+
]
31+
'''
32+
33+
def test_parse_dependency_licenses(self):
34+
with patch('builtins.open', mock_open(read_data=self.mock_dependency_licenses)):
35+
with open('dependency_licenses.json', 'r') as f:
36+
data = json.load(f)
37+
self.assertEqual(len(data), 4)
38+
self.assertEqual(data[0]['Name'], 'Jinja2')
39+
self.assertEqual(data[1]['License'], 'MIT License')
40+
41+
def test_compare_dependency_licenses(self):
42+
permitted_licenses = ["MIT", "MIT License", "Apache-2.0", "BSD", "BSD License"]
43+
44+
with patch('builtins.open', mock_open(read_data=self.mock_dependency_licenses)):
45+
with open('dependency_licenses.json', 'r') as f:
46+
data = json.load(f)
47+
48+
for package in data:
49+
license = package['License']
50+
package_name = package['Name']
51+
with self.subTest(package=package_name):
52+
if license not in permitted_licenses:
53+
print(f"Error: Package {package_name} has an unrecognized license: {license}")
54+
self.assertIn(license, permitted_licenses, f"Package {package_name} has an unrecognized license: {license}")
55+
56+
if __name__ == '__main__':
57+
unittest.main()

0 commit comments

Comments
 (0)