64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
"""Test PyJWT import paths to catch changes in library structure."""
|
|
|
|
import pytest
|
|
|
|
|
|
class TestPyJWTImports:
|
|
"""Test PyJWT import paths used throughout the codebase."""
|
|
|
|
def test_invalid_token_error_import(self):
|
|
"""Test that InvalidTokenError can be imported as used in login controller."""
|
|
# This test verifies the import path used in controllers/web/login.py:2
|
|
# If PyJWT changes this import path, this test will fail early
|
|
try:
|
|
from jwt import InvalidTokenError
|
|
|
|
# Verify it's the correct exception class
|
|
assert issubclass(InvalidTokenError, Exception)
|
|
|
|
# Test that it can be instantiated
|
|
error = InvalidTokenError("test error")
|
|
assert str(error) == "test error"
|
|
|
|
except ImportError as e:
|
|
pytest.fail(f"Failed to import InvalidTokenError from jwt: {e}")
|
|
|
|
def test_jwt_exceptions_import(self):
|
|
"""Test that jwt.exceptions imports work as expected."""
|
|
# Alternative import path that might be used
|
|
try:
|
|
# Verify it's the same class as the direct import
|
|
from jwt import InvalidTokenError
|
|
from jwt.exceptions import InvalidTokenError as InvalidTokenErrorAlt
|
|
|
|
assert InvalidTokenError is InvalidTokenErrorAlt
|
|
|
|
except ImportError as e:
|
|
pytest.fail(f"Failed to import InvalidTokenError from jwt.exceptions: {e}")
|
|
|
|
def test_other_jwt_exceptions_available(self):
|
|
"""Test that other common JWT exceptions are available."""
|
|
# Test other exceptions that might be used in the codebase
|
|
try:
|
|
from jwt import DecodeError, ExpiredSignatureError, InvalidSignatureError
|
|
|
|
# Verify they are exception classes
|
|
assert issubclass(DecodeError, Exception)
|
|
assert issubclass(ExpiredSignatureError, Exception)
|
|
assert issubclass(InvalidSignatureError, Exception)
|
|
|
|
except ImportError as e:
|
|
pytest.fail(f"Failed to import JWT exceptions: {e}")
|
|
|
|
def test_jwt_main_functions_available(self):
|
|
"""Test that main JWT functions are available."""
|
|
try:
|
|
from jwt import decode, encode
|
|
|
|
# Verify they are callable
|
|
assert callable(decode)
|
|
assert callable(encode)
|
|
|
|
except ImportError as e:
|
|
pytest.fail(f"Failed to import JWT main functions: {e}")
|