diff --git a/tests/supervisors/test_reload.py b/tests/supervisors/test_reload.py index 44eb9970b..74318b374 100644 --- a/tests/supervisors/test_reload.py +++ b/tests/supervisors/test_reload.py @@ -315,7 +315,10 @@ def test_should_watch_one_dir_cwd(mocker: MockerFixture, reload_directory_struct ) WatchFilesReload(config, target=run, sockets=[]) mock_watch.assert_called_once() - assert mock_watch.call_args[0] == (Path.cwd(),) + assert set(mock_watch.call_args[0]) == { + app_first_dir, + app_dir, + } @pytest.mark.skipif(WatchFilesReload is None, reason="watchfiles not available") @@ -333,7 +336,6 @@ def test_should_watch_separate_dirs_outside_cwd(mocker: MockerFixture, reload_di assert set(mock_watch.call_args[0]) == { app_dir, app_first_dir, - Path.cwd(), } diff --git a/uvicorn/config.py b/uvicorn/config.py index 2d2570e8a..af12f24c2 100644 --- a/uvicorn/config.py +++ b/uvicorn/config.py @@ -150,7 +150,7 @@ def resolve_reload_patterns(patterns_list: list[str], directories_list: list[str directories = list(set(directories)) directories = list(map(Path, directories)) directories = list(map(lambda x: x.resolve(), directories)) - directories = list({reload_path for reload_path in directories if is_dir(reload_path)}) + directories = list(set(filter(Path.exists, directories))) children = [] for j in range(len(directories)): diff --git a/uvicorn/supervisors/watchfilesreload.py b/uvicorn/supervisors/watchfilesreload.py index 0d3b9b77e..c13dc745a 100644 --- a/uvicorn/supervisors/watchfilesreload.py +++ b/uvicorn/supervisors/watchfilesreload.py @@ -63,10 +63,7 @@ def __init__( self.reloader_name = "WatchFiles" self.reload_dirs = [] for directory in config.reload_dirs: - if Path.cwd() not in directory.parents: - self.reload_dirs.append(directory) - if Path.cwd() not in self.reload_dirs: - self.reload_dirs.append(Path.cwd()) + self.reload_dirs.append(directory) self.watch_filter = FileFilter(config) self.watcher = watch(