]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-103606: raise RuntimeError if config file is invalid or empty (#104701)
authorPrince Roshan <princekrroshan01@gmail.com>
Sat, 20 May 2023 22:26:49 +0000 (03:56 +0530)
committerGitHub <noreply@github.com>
Sat, 20 May 2023 22:26:49 +0000 (22:26 +0000)
(this adjusts new code) raise RuntimeError if provided config file is invalid or empty, not ValueError.

Doc/library/logging.config.rst
Lib/logging/config.py
Lib/test/test_logging.py

index 452832f26aa76f35f5e2971e0e19183e61a7d4ca..448978f43b6d1305f704444bafc0dafaf7bc8ff4 100644 (file)
@@ -88,7 +88,7 @@ in :mod:`logging` itself) and defining handlers which are declared either in
    configuration).
 
    It will raise :exc:`FileNotFoundError` if the file
-   doesn't exist and :exc:`ValueError` if the file is invalid or
+   doesn't exist and :exc:`RuntimeError` if the file is invalid or
    empty.
 
    :param fname: A filename, or a file-like object, or an instance derived
@@ -130,7 +130,7 @@ in :mod:`logging` itself) and defining handlers which are declared either in
     .. versionadded:: 3.10
        The *encoding* parameter is added.
 
-    .. versionadded:: 3.12
+    .. versionchanged:: 3.12
        An exception will be thrown if the provided file
        doesn't exist or is invalid or empty.
 
index 652f21ecb459f1987f697b112b29932bee1c5c48..a68281d3e359fd5649cf3b948b35e4f7c31998b0 100644 (file)
@@ -65,7 +65,7 @@ def fileConfig(fname, defaults=None, disable_existing_loggers=True, encoding=Non
         if not os.path.exists(fname):
             raise FileNotFoundError(f"{fname} doesn't exist")
         elif not os.path.getsize(fname):
-            raise ValueError(f'{fname} is an empty file')
+            raise RuntimeError(f'{fname} is an empty file')
 
     if isinstance(fname, configparser.RawConfigParser):
         cp = fname
@@ -78,7 +78,7 @@ def fileConfig(fname, defaults=None, disable_existing_loggers=True, encoding=Non
                 encoding = io.text_encoding(encoding)
                 cp.read(fname, encoding=encoding)
         except configparser.ParsingError as e:
-            raise ValueError(f'{fname} is invalid: {e}')
+            raise RuntimeError(f'{fname} is invalid: {e}')
 
     formatters = _create_formatters(cp)
 
index ba836a7d9ea3125e895514c887b9892a46ebaf00..18258c22874ae0f8602f35c70d0026eb0054a877 100644 (file)
@@ -1781,12 +1781,12 @@ class ConfigFileTest(BaseTest):
             """
 
         file = io.StringIO(textwrap.dedent(test_config))
-        self.assertRaises(ValueError, logging.config.fileConfig, file)
+        self.assertRaises(RuntimeError, logging.config.fileConfig, file)
 
     def test_exception_if_confg_file_is_empty(self):
         fd, fn = tempfile.mkstemp(prefix='test_empty_', suffix='.ini')
         os.close(fd)
-        self.assertRaises(ValueError, logging.config.fileConfig, fn)
+        self.assertRaises(RuntimeError, logging.config.fileConfig, fn)
         os.remove(fn)
 
     def test_exception_if_config_file_does_not_exist(self):