chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""Tests for Ray exceptions."""
|
||||
import sys
|
||||
from enum import Enum
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from ray.exceptions import AuthenticationError, RayError
|
||||
|
||||
|
||||
class FakeAuthMode(Enum):
|
||||
DISABLED = 0
|
||||
TOKEN = 1
|
||||
|
||||
|
||||
class TestAuthenticationError:
|
||||
"""Tests for AuthenticationError exception."""
|
||||
|
||||
auth_doc_url = "https://docs.ray.io/en/latest/ray-security/token-auth.html"
|
||||
|
||||
def test_basic_creation(self):
|
||||
"""Test basic AuthenticationError creation and message format."""
|
||||
error = AuthenticationError("Token is missing")
|
||||
error_str = str(error)
|
||||
|
||||
# Original message preserved
|
||||
assert "Token is missing" in error_str
|
||||
# Doc URL included
|
||||
assert self.auth_doc_url in error_str
|
||||
|
||||
def test_is_ray_error_subclass(self):
|
||||
"""Test that AuthenticationError is a RayError subclass."""
|
||||
error = AuthenticationError("Test")
|
||||
assert isinstance(error, RayError)
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"auth_mode,expected_note",
|
||||
[
|
||||
(FakeAuthMode.DISABLED, "RAY_AUTH_MODE is currently 'disabled'"),
|
||||
(FakeAuthMode.TOKEN, None),
|
||||
],
|
||||
ids=["disabled", "token"],
|
||||
)
|
||||
def test_auth_mode_note_in_message(self, auth_mode, expected_note):
|
||||
"""Test that error message includes auth mode note when not in token mode."""
|
||||
with patch.dict(
|
||||
"sys.modules",
|
||||
{
|
||||
"ray._raylet": MagicMock(
|
||||
AuthenticationMode=FakeAuthMode,
|
||||
get_authentication_mode=lambda: auth_mode,
|
||||
)
|
||||
},
|
||||
):
|
||||
error = AuthenticationError("Token is missing")
|
||||
error_str = str(error)
|
||||
|
||||
assert "Token is missing" in error_str
|
||||
if expected_note:
|
||||
assert expected_note in error_str
|
||||
else:
|
||||
assert "RAY_AUTH_MODE is currently" not in error_str
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(pytest.main(["-v", __file__]))
|
||||
Reference in New Issue
Block a user