|
1 | | -"""Test for libtmux Server object.""" |
| 1 | +"""Tests for deprecated libtmux Server APIs. |
2 | 2 |
|
3 | | -from __future__ import annotations |
| 3 | +These tests verify that deprecated methods raise DeprecatedError. |
| 4 | +""" |
4 | 5 |
|
5 | | -import logging |
6 | | -import subprocess |
7 | | -import typing as t |
| 6 | +from __future__ import annotations |
8 | 7 |
|
9 | 8 | import pytest |
10 | 9 |
|
| 10 | +from libtmux.exc import DeprecatedError |
11 | 11 | from libtmux.server import Server |
12 | 12 |
|
13 | | -if t.TYPE_CHECKING: |
14 | | - from libtmux.session import Session |
15 | | - |
16 | | -logger = logging.getLogger(__name__) |
17 | | - |
18 | | - |
19 | | -def test_has_session(server: Server, session: Session) -> None: |
20 | | - """Server.has_session() returns True if session exists.""" |
21 | | - session_name = session.get("session_name") |
22 | | - assert session_name is not None |
23 | | - assert server.has_session(session_name) |
24 | | - assert not server.has_session("asdf2314324321") |
25 | | - |
26 | | - |
27 | | -def test_socket_name(server: Server) -> None: |
28 | | - """``-L`` socket_name. |
29 | | -
|
30 | | - ``-L`` socket_name file name of socket. which will be stored in |
31 | | - env TMUX_TMPDIR or /tmp if unset.) |
32 | | -
|
33 | | - """ |
34 | | - myserver = Server(socket_name="test") |
35 | | - |
36 | | - assert myserver.socket_name == "test" |
37 | | - |
38 | | - |
39 | | -def test_socket_path(server: Server) -> None: |
40 | | - """``-S`` socket_path (alternative path for server socket).""" |
41 | | - myserver = Server(socket_path="test") |
42 | | - |
43 | | - assert myserver.socket_path == "test" |
44 | | - |
45 | | - |
46 | | -def test_config(server: Server) -> None: |
47 | | - """``-f`` file for tmux(1) configuration.""" |
48 | | - myserver = Server(config_file="test") |
49 | | - assert myserver.config_file == "test" |
50 | | - |
51 | | - |
52 | | -def test_256_colors(server: Server) -> None: |
53 | | - """Assert Server respects ``colors=256``.""" |
54 | | - myserver = Server(colors=256) |
55 | | - assert myserver.colors == 256 |
56 | | - |
57 | | - proc = myserver.cmd("list-sessions") |
58 | | - |
59 | | - assert "-2" in proc.cmd |
60 | | - assert "-8" not in proc.cmd |
61 | | - |
62 | | - |
63 | | -def test_88_colors(server: Server) -> None: |
64 | | - """Assert Server respects ``colors=88``.""" |
65 | | - myserver = Server(colors=88) |
66 | | - assert myserver.colors == 88 |
67 | | - |
68 | | - proc = myserver.cmd("list-sessions") |
69 | | - |
70 | | - assert "-8" in proc.cmd |
71 | | - assert "-2" not in proc.cmd |
72 | | - |
73 | | - |
74 | | -def test_show_environment(server: Server) -> None: |
75 | | - """Server.show_environment() returns dict.""" |
76 | | - vars_ = server.show_environment() |
77 | | - assert isinstance(vars_, dict) |
78 | | - |
79 | | - |
80 | | -def test_getenv(server: Server, session: Session) -> None: |
81 | | - """Set environment then Server.show_environment(key).""" |
82 | | - server.set_environment("FOO", "BAR") |
83 | | - assert server.getenv("FOO") == "BAR" |
84 | | - |
85 | | - server.set_environment("FOO", "DAR") |
86 | | - assert server.getenv("FOO") == "DAR" |
87 | | - |
88 | | - assert server.show_environment()["FOO"] == "DAR" |
89 | | - |
90 | 13 |
|
91 | | -def test_show_environment_not_set(server: Server) -> None: |
92 | | - """Unset environment variable returns None.""" |
93 | | - assert server.getenv("BAR") is None |
| 14 | +def test_kill_server_raises_deprecated_error(server: Server) -> None: |
| 15 | + """Test Server.kill_server() raises DeprecatedError.""" |
| 16 | + with pytest.raises( |
| 17 | + DeprecatedError, match=r"Server\.kill_server\(\) was deprecated" |
| 18 | + ): |
| 19 | + server.kill_server() |
94 | 20 |
|
95 | 21 |
|
96 | | -def test_new_session(server: Server) -> None: |
97 | | - """Server.new_session creates and returns valid session.""" |
98 | | - mysession = server.new_session("test_new_session") |
99 | | - assert mysession.get("session_name") == "test_new_session" |
100 | | - assert server.has_session("test_new_session") |
| 22 | +def test_server_get_by_id_raises_deprecated_error(server: Server) -> None: |
| 23 | + """Test Server.get_by_id() raises DeprecatedError.""" |
| 24 | + with pytest.raises(DeprecatedError, match=r"Server\.get_by_id\(\) was deprecated"): |
| 25 | + server.get_by_id("$0") |
101 | 26 |
|
102 | 27 |
|
103 | | -def test_new_session_no_name(server: Server) -> None: |
104 | | - """Server.new_session works with no name.""" |
105 | | - first_session = server.new_session() |
106 | | - first_session_name = first_session.get("session_name") |
107 | | - assert first_session_name is not None |
108 | | - assert server.has_session(first_session_name) |
| 28 | +def test_server_where_raises_deprecated_error(server: Server) -> None: |
| 29 | + """Test Server.where() raises DeprecatedError.""" |
| 30 | + with pytest.raises(DeprecatedError, match=r"Server\.where\(\) was deprecated"): |
| 31 | + server.where({"session_name": "test"}) |
109 | 32 |
|
110 | | - expected_session_name = str(int(first_session_name) + 1) |
111 | 33 |
|
112 | | - # When a new session is created, it should enumerate |
113 | | - second_session = server.new_session() |
114 | | - second_session_name = second_session.get("session_name") |
115 | | - assert expected_session_name == second_session_name |
116 | | - assert second_session_name is not None |
117 | | - assert server.has_session(second_session_name) |
| 34 | +def test_server_find_where_raises_deprecated_error(server: Server) -> None: |
| 35 | + """Test Server.find_where() raises DeprecatedError.""" |
| 36 | + with pytest.raises(DeprecatedError, match=r"Server\.find_where\(\) was deprecated"): |
| 37 | + server.find_where({"session_name": "test"}) |
118 | 38 |
|
119 | 39 |
|
120 | | -def test_new_session_shell(server: Server) -> None: |
121 | | - """Verify ``Server.new_session`` creates valid session running w/ command.""" |
122 | | - cmd = "sleep 1m" |
123 | | - mysession = server.new_session("test_new_session", window_command=cmd) |
124 | | - window = mysession.list_windows()[0] |
125 | | - pane = window.list_panes()[0] |
126 | | - assert mysession.get("session_name") == "test_new_session" |
127 | | - assert server.has_session("test_new_session") |
| 40 | +def test_server_list_sessions_raises_deprecated_error(server: Server) -> None: |
| 41 | + """Test Server.list_sessions() raises DeprecatedError.""" |
| 42 | + with pytest.raises( |
| 43 | + DeprecatedError, match=r"Server\.list_sessions\(\) was deprecated" |
| 44 | + ): |
| 45 | + server.list_sessions() |
128 | 46 |
|
129 | | - pane_start_command = pane.get("pane_start_command") |
130 | | - assert pane_start_command is not None |
131 | 47 |
|
132 | | - assert pane_start_command.replace('"', "") == cmd |
| 48 | +def test_server_children_raises_deprecated_error(server: Server) -> None: |
| 49 | + """Test Server.children raises DeprecatedError.""" |
| 50 | + with pytest.raises(DeprecatedError, match=r"Server\.children was deprecated"): |
| 51 | + _ = server.children |
133 | 52 |
|
134 | 53 |
|
135 | | -def test_no_server_sessions() -> None: |
136 | | - """Verify ``Server.sessions`` returns empty list without tmux server.""" |
137 | | - server = Server(socket_name="test_attached_session_no_server") |
138 | | - assert server.sessions == [] |
| 54 | +def test_server__sessions_raises_deprecated_error(server: Server) -> None: |
| 55 | + """Test Server._sessions raises DeprecatedError.""" |
| 56 | + with pytest.raises(DeprecatedError, match=r"Server\._sessions was deprecated"): |
| 57 | + _ = server._sessions |
139 | 58 |
|
140 | 59 |
|
141 | | -def test_no_server_attached_sessions() -> None: |
142 | | - """Verify ``Server.attached_sessions`` returns empty list without tmux server.""" |
143 | | - server = Server(socket_name="test_no_server_attached_sessions") |
144 | | - assert server.attached_sessions == [] |
| 60 | +def test_server__list_sessions_raises_deprecated_error(server: Server) -> None: |
| 61 | + """Test Server._list_sessions() raises DeprecatedError.""" |
| 62 | + with pytest.raises( |
| 63 | + DeprecatedError, match=r"Server\._list_sessions\(\) was deprecated" |
| 64 | + ): |
| 65 | + server._list_sessions() |
145 | 66 |
|
146 | 67 |
|
147 | | -def test_no_server_is_alive() -> None: |
148 | | - """Verify is_alive() returns False without tmux server.""" |
149 | | - dead_server = Server(socket_name="test_no_server_is_alive") |
150 | | - assert not dead_server.is_alive() |
| 68 | +def test_server__list_windows_raises_deprecated_error(server: Server) -> None: |
| 69 | + """Test Server._list_windows() raises DeprecatedError.""" |
| 70 | + with pytest.raises( |
| 71 | + DeprecatedError, match=r"Server\._list_windows\(\) was deprecated" |
| 72 | + ): |
| 73 | + server._list_windows() |
151 | 74 |
|
152 | 75 |
|
153 | | -def test_with_server_is_alive(server: Server) -> None: |
154 | | - """Verify is_alive() returns True when tmux server is alive.""" |
155 | | - server.new_session() |
156 | | - assert server.is_alive() |
| 76 | +def test_server__update_windows_raises_deprecated_error(server: Server) -> None: |
| 77 | + """Test Server._update_windows() raises DeprecatedError.""" |
| 78 | + with pytest.raises( |
| 79 | + DeprecatedError, match=r"Server\._update_windows\(\) was deprecated" |
| 80 | + ): |
| 81 | + server._update_windows() |
157 | 82 |
|
158 | 83 |
|
159 | | -def test_raise_if_dead_no_server_raises() -> None: |
160 | | - """Verify new_session() raises if tmux server is dead.""" |
161 | | - dead_server = Server(socket_name="test_attached_session_no_server") |
162 | | - with pytest.raises(subprocess.SubprocessError): |
163 | | - dead_server.raise_if_dead() |
| 84 | +def test_server__list_panes_raises_deprecated_error(server: Server) -> None: |
| 85 | + """Test Server._list_panes() raises DeprecatedError.""" |
| 86 | + with pytest.raises( |
| 87 | + DeprecatedError, match=r"Server\._list_panes\(\) was deprecated" |
| 88 | + ): |
| 89 | + server._list_panes() |
164 | 90 |
|
165 | 91 |
|
166 | | -def test_raise_if_dead_does_not_raise_if_alive(server: Server) -> None: |
167 | | - """Verify new_session() does not raise if tmux server is alive.""" |
168 | | - server.new_session() |
169 | | - server.raise_if_dead() |
| 92 | +def test_server__update_panes_raises_deprecated_error(server: Server) -> None: |
| 93 | + """Test Server._update_panes() raises DeprecatedError.""" |
| 94 | + with pytest.raises( |
| 95 | + DeprecatedError, match=r"Server\._update_panes\(\) was deprecated" |
| 96 | + ): |
| 97 | + server._update_panes() |
0 commit comments