Files
AareDAQ/tests/unit/gui/test_auth_mock.py

44 lines
1.1 KiB
Python

import json
import subprocess
import pytest
from aare.gui.auth import auth
def test_auth_success(mocker):
mock_run = mocker.patch("aare.gui.auth.subprocess.run")
mock_run.return_value = mocker.Mock(
returncode=0,
stdout=json.dumps({"access_token": "fake_token_abc.123.xyz"}),
stderr="",
)
token = auth("http://test-server")
assert token == "fake_token_abc.123.xyz"
mock_run.assert_called_once()
args, kwargs = mock_run.call_args
assert "curl" in args[0]
assert "http://test-server/token" in args[0]
def test_auth_network_failure(mocker):
mock_run = mocker.patch("aare.gui.auth.subprocess.run")
mock_run.side_effect = OSError("Connection refused")
with pytest.raises(RuntimeError) as excinfo:
auth("http://test-server")
assert "Cannot reach AareDAQ server" in str(excinfo.value)
def test_auth_no_url_returns_dummy_jwt(mocker):
mock_run = mocker.patch("aare.gui.auth.subprocess.run")
mocker.patch("aare.gui.auth.get_user", return_value="testuser")
token = auth(None)
assert isinstance(token, str)
assert token.count('.') == 2
mock_run.assert_not_called()