]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #20120: Add a test case to verify the % char can be used in .pypirc
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 20 Jun 2016 18:41:34 +0000 (21:41 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 20 Jun 2016 18:41:34 +0000 (21:41 +0300)
I noticed that there is no test for this feature while doing
triaging work on pypa/pypi-legacy.

Lib/distutils/tests/test_config.py

index 4de825a81edffa52de3895b9f24614b89d461723..0b91d19a54c3286218ee5f3079597260e99e7779 100644 (file)
@@ -18,6 +18,7 @@ PYPIRC = """\
 index-servers =
     server1
     server2
+    server3
 
 [server1]
 username:me
@@ -28,6 +29,10 @@ username:meagain
 password: secret
 realm:acme
 repository:http://another.pypi/
+
+[server3]
+username:cbiggles
+password:yh^%#rest-of-my-password
 """
 
 PYPIRC_OLD = """\
@@ -113,6 +118,20 @@ class PyPIRCCommandTestCase(support.TempdirManager,
         finally:
             f.close()
 
+    def test_config_interpolation(self):
+        # using the % character in .pypirc should not raise an error (#20120)
+        self.write_file(self.rc, PYPIRC)
+        cmd = self._cmd(self.dist)
+        cmd.repository = 'server3'
+        config = cmd._read_pypirc()
+
+        config = list(sorted(config.items()))
+        waited = [('password', 'yh^%#rest-of-my-password'), ('realm', 'pypi'),
+                  ('repository', 'https://pypi.python.org/pypi'),
+                  ('server', 'server3'), ('username', 'cbiggles')]
+        self.assertEqual(config, waited)
+
+
 def test_suite():
     return unittest.makeSuite(PyPIRCCommandTestCase)