Skip to content

Commit a9cbd3b

Browse files
committed
add test cases for new server list format option
1 parent 7c9e9df commit a9cbd3b

2 files changed

Lines changed: 55 additions & 1 deletion

File tree

test/fixtures.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
SharedServerResources,
2323
Server,
2424
Service,
25+
SSHDetails,
2526
)
2627
from faculty.config import Profile
2728

@@ -71,3 +72,8 @@
7172
status=ServerStatus.RUNNING,
7273
services=[SERVICE],
7374
)
75+
76+
77+
SSH_DETAILS = SSHDetails(
78+
hostname="test-server", port=1234, username="faculty", key="not-a-real-key"
79+
)

test/test_servers.py

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
DEDICATED_SERVER,
2424
DEDICATED_RESOURCE,
2525
SHARED_RESOURCE,
26+
SSH_DETAILS,
2627
)
2728

2829

@@ -54,7 +55,7 @@ def test_list_all_servers_no_servers(
5455
mocker.patch("faculty_cli.cli._list_user_servers", return_value=[])
5556
result = runner.invoke(cli, ["server", "list"])
5657
assert result.exit_code == 0
57-
assert result.output == ""
58+
assert result.output == "No servers.\n"
5859

5960

6061
def test_list_all_servers(
@@ -180,6 +181,53 @@ def test_list_servers_verbose(
180181
)
181182

182183

184+
def test_list_all_servers_ssh_config(
185+
mocker,
186+
mock_update_check,
187+
mock_check_credentials,
188+
mock_profile,
189+
mock_user_id,
190+
):
191+
runner = CliRunner()
192+
mocker.patch("faculty_cli.cli._list_projects", return_value=[PROJECT])
193+
mocker.patch(
194+
"faculty_cli.cli._list_user_servers", return_value=[DEDICATED_SERVER]
195+
)
196+
mocker.patch("faculty_cli.cli._get_ssh_details", return_value=SSH_DETAILS)
197+
result = runner.invoke(
198+
cli,
199+
["server", "list", "--format", "ssh-config"],
200+
)
201+
assert result.exit_code == 0
202+
assert (
203+
result.output
204+
== f"Host test-server-test-project\n HostName test-server\n User faculty\n Port 1234\n"
205+
)
206+
207+
208+
def test_list_all_servers_verbose_error(
209+
mocker,
210+
mock_update_check,
211+
mock_check_credentials,
212+
mock_profile,
213+
mock_user_id,
214+
):
215+
runner = CliRunner()
216+
result = runner.invoke(
217+
cli,
218+
["server", "list", "--verbose", "--format", "ssh-config"],
219+
)
220+
assert result.exit_code == 2
221+
assert (
222+
result.output
223+
== """Usage: cli server list [OPTIONS] PROJECT
224+
Try 'cli server list --help' for help.
225+
226+
Error: You can't specify the `--verbose` flag and also pass the `--format` option
227+
"""
228+
)
229+
230+
183231
def test_server_spec_dedicated():
184232
machine_type, cpus, memory_gb = _server_spec(DEDICATED_SERVER)
185233
assert machine_type == DEDICATED_RESOURCE.node_type

0 commit comments

Comments
 (0)