Files
OpenHands/enterprise/tests/unit/test_proactive_conversation_starters.py
chuckbutkus d5e66b4f3a SAAS: Introducing orgs (phase 1) (#11265)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: rohitvinodmalhotra@gmail.com <rohitvinodmalhotra@gmail.com>
Co-authored-by: Hiep Le <69354317+hieptl@users.noreply.github.com>
Co-authored-by: Tim O'Farrell <tofarr@gmail.com>
2026-01-15 22:03:31 -05:00

107 lines
3.6 KiB
Python

from unittest.mock import MagicMock, patch
import pytest
# Mock the database module before importing
with patch('storage.database.engine'), patch('storage.database.a_engine'):
from integrations.github.github_view import get_user_proactive_conversation_setting
from storage.org import Org
pytestmark = pytest.mark.asyncio
async def test_get_user_proactive_conversation_setting_no_user_id():
"""Test that the function returns False when no user ID is provided."""
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
True,
):
assert await get_user_proactive_conversation_setting(None) is False
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
False,
):
assert await get_user_proactive_conversation_setting(None) is False
async def test_get_user_proactive_conversation_setting_user_not_found():
"""Test that False is returned when the user is not found."""
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
True,
):
with patch(
'storage.org_store.OrgStore.get_current_org_from_keycloak_user_id',
return_value=None,
):
assert (
await get_user_proactive_conversation_setting(
'5594c7b6-f959-4b81-92e9-b09c206f5081'
)
is False
)
async def test_get_user_proactive_conversation_setting_user_setting_none():
"""Test that False is returned when the user setting is None."""
mock_org = MagicMock(spec=Org)
mock_org.enable_proactive_conversation_starters = None
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
True,
):
with patch(
'storage.org_store.OrgStore.get_current_org_from_keycloak_user_id',
return_value=mock_org,
):
assert (
await get_user_proactive_conversation_setting(
'5594c7b6-f959-4b81-92e9-b09c206f5081'
)
is False
)
async def test_get_user_proactive_conversation_setting_user_setting_true():
"""Test that True is returned when the user setting is True and the global setting is True."""
mock_org = MagicMock(spec=Org)
mock_org.enable_proactive_conversation_starters = True
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
True,
):
with patch(
'storage.org_store.OrgStore.get_current_org_from_keycloak_user_id',
return_value=mock_org,
):
assert (
await get_user_proactive_conversation_setting(
'5594c7b6-f959-4b81-92e9-b09c206f5081'
)
is True
)
async def test_get_user_proactive_conversation_setting_user_setting_false():
"""Test that False is returned when the user setting is False, regardless of global setting."""
mock_org = MagicMock(spec=Org)
mock_org.enable_proactive_conversation_starters = False
with patch(
'integrations.github.github_view.ENABLE_PROACTIVE_CONVERSATION_STARTERS',
True,
):
with patch(
'storage.org_store.OrgStore.get_current_org_from_keycloak_user_id',
return_value=mock_org,
):
assert (
await get_user_proactive_conversation_setting(
'5594c7b6-f959-4b81-92e9-b09c206f5081'
)
is False
)