[3.13] gh-130941: Fix configparser parsing values with allow_no_value and interpolation set (GH-130949) (#132588)

gh-130941: Fix `configparser` parsing values with `allow_no_value` and `interpolation` set (GH-130949)
(cherry picked from commit c35c7353eb)

Co-authored-by: sobolevn <mail@sobolevn.me>
This commit is contained in:
Miss Islington (bot) 2025-04-16 14:19:46 +02:00 committed by GitHub
parent 8128bcfa08
commit ee8f681252
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 45 additions and 0 deletions

View file

@ -1328,6 +1328,47 @@ class ConfigParserTestCaseNoValue(ConfigParserTestCase):
allow_no_value = True
class NoValueAndExtendedInterpolation(CfgParserTestCaseClass):
interpolation = configparser.ExtendedInterpolation()
allow_no_value = True
def test_interpolation_with_allow_no_value(self):
config = textwrap.dedent("""
[dummy]
a
b = ${a}
""")
cf = self.fromstring(config)
self.assertIs(cf["dummy"]["a"], None)
self.assertEqual(cf["dummy"]["b"], "")
def test_explicit_none(self):
config = textwrap.dedent("""
[dummy]
a = None
b = ${a}
""")
cf = self.fromstring(config)
self.assertEqual(cf["dummy"]["a"], "None")
self.assertEqual(cf["dummy"]["b"], "None")
class ConfigParserNoValueAndExtendedInterpolationTest(
NoValueAndExtendedInterpolation,
unittest.TestCase,
):
config_class = configparser.ConfigParser
class RawConfigParserNoValueAndExtendedInterpolationTest(
NoValueAndExtendedInterpolation,
unittest.TestCase,
):
config_class = configparser.RawConfigParser
class ConfigParserTestCaseTrickyFile(CfgParserTestCaseClass, unittest.TestCase):
config_class = configparser.ConfigParser
delimiters = {'='}