Spaces:
Running
Running
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """Tests for the openenv __main__ module.""" | |
| from unittest.mock import patch | |
| import pytest | |
| from openenv.cli.__main__ import main | |
| from typer.testing import CliRunner | |
| runner = CliRunner() | |
| def test_main_handles_keyboard_interrupt() -> None: | |
| """Test that main handles KeyboardInterrupt gracefully.""" | |
| with patch("openenv.cli.__main__.app") as mock_app: | |
| mock_app.side_effect = KeyboardInterrupt() | |
| with pytest.raises(SystemExit) as exc_info: | |
| main() | |
| assert exc_info.value.code == 130 | |
| def test_main_handles_generic_exception() -> None: | |
| """Test that main handles generic exceptions gracefully.""" | |
| with patch("openenv.cli.__main__.app") as mock_app: | |
| mock_app.side_effect = ValueError("Test error") | |
| with pytest.raises(SystemExit) as exc_info: | |
| main() | |
| assert exc_info.value.code == 1 | |
| def test_main_entry_point() -> None: | |
| """Test that main() can be called as entry point.""" | |
| # This tests the if __name__ == "__main__" block indirectly | |
| # by ensuring main() function works | |
| with patch("openenv.cli.__main__.app") as mock_app: | |
| main() | |
| mock_app.assert_called_once() | |