﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
34720	Path checking in BaseReloader.watch_dir() incorrectly checks for existence of path	Josh Thomas	nobody	"Within the `watch_dir` method in `django.utils.autoreload.BaseReloader`, the path is checked by calling on the `absolute` method on the `Path` object:

{{{
def watch_dir(self, path, glob):
    path = Path(path)
    try:
        path = path.absolute()
    except FileNotFoundError:
        logger.debug(
            ""Unable to watch directory %s as it cannot be resolved."",
            path,
            exc_info=True,
        )
        return
    logger.debug(""Watching dir %s with glob %s."", path, glob)
    self.directory_globs[path].add(glob)
}}}

Except `absolute` doesn't raise, it just returns the absolute path. Should be changed to an if check on `path.exists()`:

{{{
Python 3.11.4 (main, Jul 17 2023, 15:40:49) [GCC 9.4.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from pathlib import Path

In [2]: Path('/home/josh/projects/django/nonexistent').absolute()
Out[2]: PosixPath('/home/josh/projects/django/nonexistent')

In [3]: Path('/home/josh/projects/django/nonexistent').exists()
Out[3]: False
}}}

Willing to prepare a patch."	Bug	new	Uncategorized	4.2	Normal				Unreviewed	0	0	0	0	0	0
