Skip to content

Commit 5f1188e

Browse files
Fix for missing logfiles.
Co-authored-by: Piotr Kaznowski <[email protected]>
1 parent 9a9b81f commit 5f1188e

File tree

2 files changed

+62
-11
lines changed

2 files changed

+62
-11
lines changed

cli/website.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,22 @@ def get(
5555
website = Website()
5656
if domain_name is not None:
5757
website_info = website.get(domain_name=domain_name)
58-
table = tabulate(
59-
[
60-
["domain name", website_info["domain_name"]],
61-
["enabled", website_info["enabled"]],
62-
["command", website_info["webapp"]["command"]],
63-
["access log", website_info["logfiles"]["access"]],
64-
["error log", website_info["logfiles"]["error"]],
65-
["server log", website_info["logfiles"]["server"]],
66-
],
67-
tablefmt="simple",
68-
)
58+
tabular_data = [
59+
["domain name", website_info["domain_name"]],
60+
["enabled", website_info["enabled"]],
61+
["command", website_info["webapp"]["command"]],
62+
63+
]
64+
if "logfiles" in website_info:
65+
tabular_data.extend(
66+
[
67+
["access log", website_info["logfiles"]["access"]],
68+
["error log", website_info["logfiles"]["error"]],
69+
["server log", website_info["logfiles"]["server"]],
70+
]
71+
)
72+
73+
table = tabulate(tabular_data, tablefmt="simple")
6974
else:
7075
websites = website.list()
7176
table = tabulate(

tests/test_cli_website.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,52 @@ def test_get_with_domain_gives_details_for_domain(mocker, website_info, domain_n
158158
mock_echo.assert_called_once_with(mock_tabulate.return_value)
159159

160160

161+
def test_get_with_domain_gives_details_for_domain_even_without_logfiles(
162+
mocker, domain_name, command
163+
):
164+
website_info = {
165+
"domain_name": domain_name,
166+
"enabled": True,
167+
"id": 42,
168+
"user": getpass.getuser(),
169+
"webapp": {
170+
"command": command,
171+
"domains": [
172+
{
173+
"domain_name": domain_name,
174+
"enabled": True
175+
}
176+
],
177+
"id": 42
178+
}
179+
}
180+
mock_website = mocker.patch("cli.website.Website")
181+
mock_website.return_value.get.return_value = website_info
182+
mock_tabulate = mocker.patch("cli.website.tabulate")
183+
mock_echo = mocker.patch("cli.website.typer.echo")
184+
185+
result = runner.invoke(
186+
app,
187+
[
188+
"get",
189+
"-d",
190+
domain_name
191+
],
192+
)
193+
194+
assert result.exit_code == 0
195+
mock_website.return_value.get.assert_called_once_with(domain_name=domain_name)
196+
assert mock_tabulate.call_args == call(
197+
[
198+
["domain name", website_info["domain_name"]],
199+
["enabled", website_info["enabled"]],
200+
["command", website_info["webapp"]["command"]],
201+
],
202+
tablefmt="simple",
203+
)
204+
mock_echo.assert_called_once_with(mock_tabulate.return_value)
205+
206+
161207
def test_reload_with_no_domain_barfs():
162208
result = runner.invoke(
163209
app,

0 commit comments

Comments
 (0)