fastapi-cli 0.0.11__tar.gz → 0.0.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/PKG-INFO +1 -1
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/pyproject.toml +1 -1
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/requirements-tests.txt +2 -2
- fastapi_cli-0.0.12/src/fastapi_cli/__init__.py +1 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/cli.py +4 -2
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_cli.py +126 -0
- fastapi_cli-0.0.11/src/fastapi_cli/__init__.py +0 -1
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/LICENSE +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/README.md +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/pdm_build.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/requirements-github-actions.txt +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/requirements.txt +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/scripts/format.sh +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/scripts/lint.sh +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/scripts/test-cov-html.sh +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/scripts/test.sh +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/__main__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/discover.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/exceptions.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/logging.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/py.typed +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/utils/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/src/fastapi_cli/utils/cli.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/broken_package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/broken_package/mod/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/broken_package/utils.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_api/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_api/app/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_api/app/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_app/app/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_app/app/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_app/app/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/main.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_non_default/app/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_non_default/app/nondefault.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_main/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_main/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_main/main.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/non_default/nonstandard.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/core/utils.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/mod/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/mod/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/mod/other.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/core/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/core/utils.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/mod/__init__.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/mod/api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/mod/app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/package/mod/other.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/single_file_api.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/single_file_app.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/single_file_other.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/conftest.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_discover.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_requirements.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_utils_cli.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_utils_default_dir.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_utils_default_file.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_utils_package.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/test_utils_single_file.py +0 -0
- {fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.12"
|
|
@@ -206,7 +206,8 @@ def dev(
|
|
|
206
206
|
port: Annotated[
|
|
207
207
|
int,
|
|
208
208
|
typer.Option(
|
|
209
|
-
help="The port to serve on. You would normally have a termination proxy on top (another program) handling HTTPS on port [blue]443[/blue] and HTTP on port [blue]80[/blue], transferring the communication to your app."
|
|
209
|
+
help="The port to serve on. You would normally have a termination proxy on top (another program) handling HTTPS on port [blue]443[/blue] and HTTP on port [blue]80[/blue], transferring the communication to your app.",
|
|
210
|
+
envvar="PORT",
|
|
210
211
|
),
|
|
211
212
|
] = 8000,
|
|
212
213
|
reload: Annotated[
|
|
@@ -305,7 +306,8 @@ def run(
|
|
|
305
306
|
port: Annotated[
|
|
306
307
|
int,
|
|
307
308
|
typer.Option(
|
|
308
|
-
help="The port to serve on. You would normally have a termination proxy on top (another program) handling HTTPS on port [blue]443[/blue] and HTTP on port [blue]80[/blue], transferring the communication to your app."
|
|
309
|
+
help="The port to serve on. You would normally have a termination proxy on top (another program) handling HTTPS on port [blue]443[/blue] and HTTP on port [blue]80[/blue], transferring the communication to your app.",
|
|
310
|
+
envvar="PORT",
|
|
309
311
|
),
|
|
310
312
|
] = 8000,
|
|
311
313
|
reload: Annotated[
|
|
@@ -122,6 +122,73 @@ def test_dev_args() -> None:
|
|
|
122
122
|
)
|
|
123
123
|
|
|
124
124
|
|
|
125
|
+
def test_dev_env_vars() -> None:
|
|
126
|
+
with changing_dir(assets_path):
|
|
127
|
+
with patch.object(uvicorn, "run") as mock_run:
|
|
128
|
+
result = runner.invoke(
|
|
129
|
+
app, ["dev", "single_file_app.py"], env={"PORT": "8111"}
|
|
130
|
+
)
|
|
131
|
+
assert result.exit_code == 0, result.output
|
|
132
|
+
assert mock_run.called
|
|
133
|
+
assert mock_run.call_args
|
|
134
|
+
assert mock_run.call_args.kwargs == {
|
|
135
|
+
"app": "single_file_app:app",
|
|
136
|
+
"host": "127.0.0.1",
|
|
137
|
+
"port": 8111,
|
|
138
|
+
"reload": True,
|
|
139
|
+
"workers": None,
|
|
140
|
+
"root_path": "",
|
|
141
|
+
"proxy_headers": True,
|
|
142
|
+
"forwarded_allow_ips": None,
|
|
143
|
+
"log_config": get_uvicorn_log_config(),
|
|
144
|
+
}
|
|
145
|
+
assert "Using import string: single_file_app:app" in result.output
|
|
146
|
+
assert "Starting development server 🚀" in result.output
|
|
147
|
+
assert "Server started at http://127.0.0.1:8111" in result.output
|
|
148
|
+
assert "Documentation at http://127.0.0.1:8111/docs" in result.output
|
|
149
|
+
assert (
|
|
150
|
+
"Running in development mode, for production use: fastapi run"
|
|
151
|
+
in result.output
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def test_dev_env_vars_and_args() -> None:
|
|
156
|
+
with changing_dir(assets_path):
|
|
157
|
+
with patch.object(uvicorn, "run") as mock_run:
|
|
158
|
+
result = runner.invoke(
|
|
159
|
+
app,
|
|
160
|
+
[
|
|
161
|
+
"dev",
|
|
162
|
+
"single_file_app.py",
|
|
163
|
+
"--port",
|
|
164
|
+
"8080",
|
|
165
|
+
],
|
|
166
|
+
env={"PORT": "8111"},
|
|
167
|
+
)
|
|
168
|
+
assert result.exit_code == 0, result.output
|
|
169
|
+
assert mock_run.called
|
|
170
|
+
assert mock_run.call_args
|
|
171
|
+
assert mock_run.call_args.kwargs == {
|
|
172
|
+
"app": "single_file_app:app",
|
|
173
|
+
"host": "127.0.0.1",
|
|
174
|
+
"port": 8080,
|
|
175
|
+
"reload": True,
|
|
176
|
+
"workers": None,
|
|
177
|
+
"root_path": "",
|
|
178
|
+
"proxy_headers": True,
|
|
179
|
+
"forwarded_allow_ips": None,
|
|
180
|
+
"log_config": get_uvicorn_log_config(),
|
|
181
|
+
}
|
|
182
|
+
assert "Using import string: single_file_app:app" in result.output
|
|
183
|
+
assert "Starting development server 🚀" in result.output
|
|
184
|
+
assert "Server started at http://127.0.0.1:8080" in result.output
|
|
185
|
+
assert "Documentation at http://127.0.0.1:8080/docs" in result.output
|
|
186
|
+
assert (
|
|
187
|
+
"Running in development mode, for production use: fastapi run"
|
|
188
|
+
in result.output
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
|
|
125
192
|
def test_run() -> None:
|
|
126
193
|
with changing_dir(assets_path):
|
|
127
194
|
with patch.object(uvicorn, "run") as mock_run:
|
|
@@ -223,6 +290,65 @@ def test_run_args() -> None:
|
|
|
223
290
|
)
|
|
224
291
|
|
|
225
292
|
|
|
293
|
+
def test_run_env_vars() -> None:
|
|
294
|
+
with changing_dir(assets_path):
|
|
295
|
+
with patch.object(uvicorn, "run") as mock_run:
|
|
296
|
+
result = runner.invoke(
|
|
297
|
+
app, ["run", "single_file_app.py"], env={"PORT": "8111"}
|
|
298
|
+
)
|
|
299
|
+
assert result.exit_code == 0, result.output
|
|
300
|
+
assert mock_run.called
|
|
301
|
+
assert mock_run.call_args
|
|
302
|
+
assert mock_run.call_args.kwargs == {
|
|
303
|
+
"app": "single_file_app:app",
|
|
304
|
+
"host": "0.0.0.0",
|
|
305
|
+
"port": 8111,
|
|
306
|
+
"reload": False,
|
|
307
|
+
"workers": None,
|
|
308
|
+
"root_path": "",
|
|
309
|
+
"proxy_headers": True,
|
|
310
|
+
"forwarded_allow_ips": None,
|
|
311
|
+
"log_config": get_uvicorn_log_config(),
|
|
312
|
+
}
|
|
313
|
+
assert "Using import string: single_file_app:app" in result.output
|
|
314
|
+
assert "Starting production server 🚀" in result.output
|
|
315
|
+
assert "Server started at http://0.0.0.0:8111" in result.output
|
|
316
|
+
assert "Documentation at http://0.0.0.0:8111/docs" in result.output
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
def test_run_env_vars_and_args() -> None:
|
|
320
|
+
with changing_dir(assets_path):
|
|
321
|
+
with patch.object(uvicorn, "run") as mock_run:
|
|
322
|
+
result = runner.invoke(
|
|
323
|
+
app,
|
|
324
|
+
[
|
|
325
|
+
"run",
|
|
326
|
+
"single_file_app.py",
|
|
327
|
+
"--port",
|
|
328
|
+
"8080",
|
|
329
|
+
],
|
|
330
|
+
env={"PORT": "8111"},
|
|
331
|
+
)
|
|
332
|
+
assert result.exit_code == 0, result.output
|
|
333
|
+
assert mock_run.called
|
|
334
|
+
assert mock_run.call_args
|
|
335
|
+
assert mock_run.call_args.kwargs == {
|
|
336
|
+
"app": "single_file_app:app",
|
|
337
|
+
"host": "0.0.0.0",
|
|
338
|
+
"port": 8080,
|
|
339
|
+
"reload": False,
|
|
340
|
+
"workers": None,
|
|
341
|
+
"root_path": "",
|
|
342
|
+
"proxy_headers": True,
|
|
343
|
+
"forwarded_allow_ips": None,
|
|
344
|
+
"log_config": get_uvicorn_log_config(),
|
|
345
|
+
}
|
|
346
|
+
assert "Using import string: single_file_app:app" in result.output
|
|
347
|
+
assert "Starting production server 🚀" in result.output
|
|
348
|
+
assert "Server started at http://0.0.0.0:8080" in result.output
|
|
349
|
+
assert "Documentation at http://0.0.0.0:8080/docs" in result.output
|
|
350
|
+
|
|
351
|
+
|
|
226
352
|
def test_run_error() -> None:
|
|
227
353
|
with changing_dir(assets_path):
|
|
228
354
|
result = runner.invoke(app, ["run", "non_existing_file.py"])
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_api/app/api.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_app/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_app/app/app.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/api.py
RENAMED
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/default_app_dir_main/app/app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/default_files/non_default/nonstandard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_cli-0.0.11 → fastapi_cli-0.0.12}/tests/assets/nested_package/package/mod/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|