| 12345678910111213141516171819202122232425262728293031323334 |
- from __future__ import annotations
- import unittest
- from unittest.mock import patch
- from fastapi import HTTPException
- from app.main import verify_automation_token
- class AutomationTokenTest(unittest.TestCase):
- def test_token_is_optional_when_not_configured(self) -> None:
- with patch("app.main.settings_service.automation_remote_token", return_value=""):
- verify_automation_token()
- def test_accepts_supported_token_locations(self) -> None:
- with patch("app.main.settings_service.automation_remote_token", return_value="secret"):
- verify_automation_token(x_automation_token="secret")
- verify_automation_token(authorization="Bearer secret")
- verify_automation_token(automation_token="secret")
- def test_rejects_missing_or_invalid_token_when_configured(self) -> None:
- with patch("app.main.settings_service.automation_remote_token", return_value="secret"):
- with self.assertRaises(HTTPException) as missing:
- verify_automation_token()
- self.assertEqual(missing.exception.status_code, 401)
- with self.assertRaises(HTTPException) as invalid:
- verify_automation_token(x_automation_token="wrong")
- self.assertEqual(invalid.exception.status_code, 401)
- if __name__ == "__main__":
- unittest.main()
|