Coverage for tests/test_utils_default_dir.py: 100%
32 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-11 09:18 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-11 09:18 +0000
1from pathlib import Path 1abcdefghijklmn
3import pytest 1abcdefghijklmn
5from fastapi_cli.discover import get_import_data 1abcdefghijklmn
6from fastapi_cli.exceptions import FastAPICLIException 1abcdefghijklmn
8from .utils import changing_dir 1abcdefghijklmn
10assets_path = Path(__file__).parent / "assets" 1abcdefghijklmn
13def test_app_dir_main() -> None: 1abcdefghijklmn
14 dir = assets_path / "default_files" / "default_app_dir_main" 1opqrstuvwxyzAB
15 with changing_dir(dir): 1opqrstuvwxyzAB
16 import_data = get_import_data() 1opqrstuvwxyzAB
18 assert import_data.import_string == "app.main:app" 1opqrstuvwxyzAB
20 assert import_data.module_data.extra_sys_path == dir 1opqrstuvwxyzAB
21 assert import_data.module_data.module_import_str == "app.main" 1opqrstuvwxyzAB
24def test_app_dir_app() -> None: 1abcdefghijklmn
25 dir = assets_path / "default_files" / "default_app_dir_app" 1CDEFGHIJKLMNOP
26 with changing_dir(dir): 1CDEFGHIJKLMNOP
27 import_data = get_import_data() 1CDEFGHIJKLMNOP
29 assert import_data.import_string == "app.app:app" 1CDEFGHIJKLMNOP
31 assert import_data.module_data.extra_sys_path == dir 1CDEFGHIJKLMNOP
32 assert import_data.module_data.module_import_str == "app.app" 1CDEFGHIJKLMNOP
35def test_app_dir_api() -> None: 1abcdefghijklmn
36 dir = assets_path / "default_files" / "default_app_dir_api" 1QRSTUVWXYZ0123
37 with changing_dir(dir): 1QRSTUVWXYZ0123
38 import_data = get_import_data() 1QRSTUVWXYZ0123
40 assert import_data.import_string == "app.api:app" 1QRSTUVWXYZ0123
42 assert import_data.module_data.extra_sys_path == dir 1QRSTUVWXYZ0123
43 assert import_data.module_data.module_import_str == "app.api" 1QRSTUVWXYZ0123
46def test_app_dir_non_default() -> None: 1abcdefghijklmn
47 with changing_dir(assets_path / "default_files" / "default_app_dir_non_default"): 1456789!#$%'()*
48 with pytest.raises(FastAPICLIException) as e: 1456789!#$%'()*
49 get_import_data() 1456789!#$%'()*
50 assert ( 1456789!#$%'()*
51 "Could not find a default file to run, please provide an explicit path"
52 in e.value.args[0]
53 )