mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 04:25:42 +00:00
add testing for license file
This commit is contained in:
@ -50,11 +50,8 @@ def read_license_file(path: Path) -> list:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
data = json.loads(path.read_text())
|
data = json.loads(path.read_text())
|
||||||
except json.JSONDecodeError as e:
|
|
||||||
logger.exception("Failed to parse license file '%s': %s", path, e)
|
|
||||||
return []
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception("Exception while reading license file '%s': %s", path, e)
|
logger.exception("Failed to parse license file '%s': %s", path, e)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
output = []
|
output = []
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
"""Low level tests for the InvenTree API."""
|
"""Low level tests for the InvenTree API."""
|
||||||
|
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
|
from pathlib import Path
|
||||||
|
from tempfile import NamedTemporaryFile
|
||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
|
||||||
|
from InvenTree.api import read_license_file
|
||||||
from InvenTree.api_version import INVENTREE_API_VERSION
|
from InvenTree.api_version import INVENTREE_API_VERSION
|
||||||
from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase
|
from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase
|
||||||
from InvenTree.version import inventreeApiText, parse_version_text
|
from InvenTree.version import inventreeApiText, parse_version_text
|
||||||
@ -425,8 +428,8 @@ class SearchTests(InvenTreeAPITestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class ApiVersionTests(InvenTreeAPITestCase):
|
class GeneralApiTests(InvenTreeAPITestCase):
|
||||||
"""Tests for api_version functions and APIs."""
|
"""Tests for versions and license endpoints."""
|
||||||
|
|
||||||
def test_api_version(self):
|
def test_api_version(self):
|
||||||
"""Test that the API text is correct."""
|
"""Test that the API text is correct."""
|
||||||
@ -461,3 +464,27 @@ class ApiVersionTests(InvenTreeAPITestCase):
|
|||||||
|
|
||||||
# Check that all texts are parsed
|
# Check that all texts are parsed
|
||||||
self.assertEqual(len(resp), INVENTREE_API_VERSION - 1)
|
self.assertEqual(len(resp), INVENTREE_API_VERSION - 1)
|
||||||
|
|
||||||
|
def test_api_license(self):
|
||||||
|
"""Test that the license endpoint is working."""
|
||||||
|
response = self.get(reverse('api-license')).json()
|
||||||
|
self.assertIn('backend', response)
|
||||||
|
self.assertIn('frontend', response)
|
||||||
|
|
||||||
|
# Various problem cases
|
||||||
|
# File does not exist
|
||||||
|
with self.assertLogs(logger='inventree', level='ERROR') as log:
|
||||||
|
respo = read_license_file(Path('does not exsist'))
|
||||||
|
self.assertEqual(respo, [])
|
||||||
|
|
||||||
|
self.assertIn('License file not found at', str(log.output))
|
||||||
|
|
||||||
|
with NamedTemporaryFile('w', encoding='utf8') as sample_file:
|
||||||
|
sample_file.write('abc')
|
||||||
|
|
||||||
|
# File is not a json
|
||||||
|
with self.assertLogs(logger='inventree', level='ERROR') as log:
|
||||||
|
respo = read_license_file(Path(sample_file.file.name))
|
||||||
|
self.assertEqual(respo, [])
|
||||||
|
|
||||||
|
self.assertIn('Failed to parse license file', str(log.output))
|
||||||
|
Reference in New Issue
Block a user