from unittest.mock import patch

from openhands.core.cli import read_input
from openhands.core.config import AppConfig


def test_single_line_input():
    """Test that single line input works when cli_multiline_input is False"""
    config = AppConfig()
    config.cli_multiline_input = False

    with patch('builtins.input', return_value='hello world'):
        result = read_input(config)
        assert result == 'hello world'


def test_multiline_input():
    """Test that multiline input works when cli_multiline_input is True"""
    config = AppConfig()
    config.cli_multiline_input = True

    # Simulate multiple lines of input followed by /exit
    mock_inputs = ['line 1', 'line 2', 'line 3', '/exit']

    with patch('builtins.input', side_effect=mock_inputs):
        result = read_input(config)
        assert result == 'line 1\nline 2\nline 3'