|
7 | 7 | from asyncssh import PermissionDenied |
8 | 8 | from enum_here import ScreenName, ServerState |
9 | 9 | from main import PythonHereApp |
| 10 | +from ui_here.server_screen_here import ServerScreenManager |
10 | 11 | from version_here import __version__ |
11 | 12 |
|
12 | 13 |
|
13 | 14 | def test_dev_version_is_set(): |
14 | 15 | assert __version__ == "0.0.0" |
15 | 16 |
|
16 | 17 |
|
17 | | -@pytest.mark.asyncio |
18 | | -async def test_starting_server_screen_shown(app_instance): |
19 | | - app_instance.root.ids.here_screen_manager.update() |
20 | | - assert app_instance.root.ids.here_screen_manager.current == "starting_server" |
| 18 | +def test_server_screen_update_states(mocker): |
| 19 | + screen = SimpleNamespace(current=None) |
| 20 | + app = SimpleNamespace( |
| 21 | + ssh_server_config_ready=asyncio.Event(), |
| 22 | + ssh_server_started=asyncio.Event(), |
| 23 | + ) |
| 24 | + mocker.patch("ui_here.server_screen_here.App.get_running_app", return_value=app) |
| 25 | + unschedule = mocker.patch("ui_here.server_screen_here.Clock.unschedule") |
| 26 | + |
| 27 | + ServerScreenManager.update.__wrapped__(screen) |
| 28 | + assert screen.current == ServerState.not_configured |
| 29 | + |
| 30 | + app.ssh_server_config_ready.set() |
| 31 | + ServerScreenManager.update.__wrapped__(screen) |
| 32 | + assert screen.current == ServerState.starting_server |
| 33 | + |
| 34 | + app.ssh_server_started.set() |
| 35 | + screen.update_event = mocker.Mock() |
| 36 | + ServerScreenManager.update.__wrapped__(screen) |
| 37 | + assert screen.current == ServerState.ready |
| 38 | + unschedule.assert_called_once_with(screen.update_event) |
21 | 39 |
|
22 | 40 |
|
23 | 41 | @pytest.mark.asyncio |
|
0 commit comments