|
5 | 5 | from typer.testing import CliRunner |
6 | 6 |
|
7 | 7 | from cli.website import app |
8 | | -from pythonanywhere_core.exceptions import SanityException |
| 8 | +from pythonanywhere_core.exceptions import PythonAnywhereApiException, DomainAlreadyExistsException |
9 | 9 |
|
10 | 10 |
|
11 | 11 | runner = CliRunner() |
@@ -115,25 +115,46 @@ def test_create_with_domain_and_command_creates_it(mock_website): |
115 | 115 | assert "All done!" in result.stdout |
116 | 116 |
|
117 | 117 |
|
118 | | -def test_create_with_failing_sanity_check(mock_website): |
119 | | - mock_website.return_value.create.side_effect = SanityException("You already have a website for this domain. Use the --nuke option to replace it.") |
120 | | - |
| 118 | +def test_create_with_existing_domain(mock_website): |
| 119 | + mock_website.return_value.create.side_effect = DomainAlreadyExistsException |
| 120 | + domain_name = "www.something.com" |
121 | 121 | result = runner.invoke( |
122 | 122 | app, |
123 | 123 | [ |
124 | 124 | "create", |
125 | 125 | "-d", |
126 | | - "www.something.com", |
| 126 | + domain_name, |
127 | 127 | "-c", |
128 | 128 | "some kind of server", |
129 | 129 | ], |
130 | 130 | ) |
131 | | - assert result.exit_code == 0 |
| 131 | + assert result.exit_code != 0 |
| 132 | + mock_website.return_value.create.assert_called_once_with( |
| 133 | + domain_name="www.something.com", |
| 134 | + command="some kind of server" |
| 135 | + ) |
| 136 | + assert "You already have a website for www.something.com." in result.stdout |
| 137 | + |
| 138 | + |
| 139 | +def test_create_with_existing_domain(mock_website): |
| 140 | + mock_website.return_value.create.side_effect = PythonAnywhereApiException("Something terrible has happened.") |
| 141 | + domain_name = "www.something.com" |
| 142 | + result = runner.invoke( |
| 143 | + app, |
| 144 | + [ |
| 145 | + "create", |
| 146 | + "-d", |
| 147 | + domain_name, |
| 148 | + "-c", |
| 149 | + "some kind of server", |
| 150 | + ], |
| 151 | + ) |
| 152 | + assert result.exit_code != 0 |
132 | 153 | mock_website.return_value.create.assert_called_once_with( |
133 | 154 | domain_name="www.something.com", |
134 | 155 | command="some kind of server" |
135 | 156 | ) |
136 | | - assert "You already have a website for www.something.com. Use the --nuke option to replace it." in result.stdout |
| 157 | + assert "Something terrible has happened." in result.stdout |
137 | 158 |
|
138 | 159 |
|
139 | 160 | def test_get_with_no_domain_lists_websites(mock_echo, mock_tabulate, mock_website, website_info): |
|
0 commit comments