tests/test-wsgirequest.py
changeset 43076 2372284d9457
parent 37895 e0598133ac68
child 43506 9f70512ae2cf
--- a/tests/test-wsgirequest.py	Sat Oct 05 10:29:34 2019 -0400
+++ b/tests/test-wsgirequest.py	Sun Oct 06 09:45:02 2019 -0400
@@ -2,12 +2,8 @@
 
 import unittest
 
-from mercurial.hgweb import (
-    request as requestmod,
-)
-from mercurial import (
-    error,
-)
+from mercurial.hgweb import request as requestmod
+from mercurial import error
 
 DEFAULT_ENV = {
     r'REQUEST_METHOD': r'GET',
@@ -23,12 +19,15 @@
     r'wsgi.run_once': False,
 }
 
+
 def parse(env, reponame=None, altbaseurl=None, extra=None):
     env = dict(env)
     env.update(extra or {})
 
-    return requestmod.parserequestfromenv(env, reponame=reponame,
-                                          altbaseurl=altbaseurl)
+    return requestmod.parserequestfromenv(
+        env, reponame=reponame, altbaseurl=altbaseurl
+    )
+
 
 class ParseRequestTests(unittest.TestCase):
     def testdefault(self):
@@ -50,19 +49,17 @@
         self.assertEqual(len(r.headers), 0)
 
     def testcustomport(self):
-        r = parse(DEFAULT_ENV, extra={
-            r'SERVER_PORT': r'8000',
-        })
+        r = parse(DEFAULT_ENV, extra={r'SERVER_PORT': r'8000',})
 
         self.assertEqual(r.url, b'http://testserver:8000')
         self.assertEqual(r.baseurl, b'http://testserver:8000')
         self.assertEqual(r.advertisedurl, b'http://testserver:8000')
         self.assertEqual(r.advertisedbaseurl, b'http://testserver:8000')
 
-        r = parse(DEFAULT_ENV, extra={
-            r'SERVER_PORT': r'4000',
-            r'wsgi.url_scheme': r'https',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            extra={r'SERVER_PORT': r'4000', r'wsgi.url_scheme': r'https',},
+        )
 
         self.assertEqual(r.url, b'https://testserver:4000')
         self.assertEqual(r.baseurl, b'https://testserver:4000')
@@ -70,9 +67,7 @@
         self.assertEqual(r.advertisedbaseurl, b'https://testserver:4000')
 
     def testhttphost(self):
-        r = parse(DEFAULT_ENV, extra={
-            r'HTTP_HOST': r'altserver',
-        })
+        r = parse(DEFAULT_ENV, extra={r'HTTP_HOST': r'altserver',})
 
         self.assertEqual(r.url, b'http://altserver')
         self.assertEqual(r.baseurl, b'http://altserver')
@@ -80,9 +75,7 @@
         self.assertEqual(r.advertisedbaseurl, b'http://testserver')
 
     def testscriptname(self):
-        r = parse(DEFAULT_ENV, extra={
-            r'SCRIPT_NAME': r'',
-        })
+        r = parse(DEFAULT_ENV, extra={r'SCRIPT_NAME': r'',})
 
         self.assertEqual(r.url, b'http://testserver')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -92,9 +85,7 @@
         self.assertEqual(r.dispatchparts, [])
         self.assertIsNone(r.dispatchpath)
 
-        r = parse(DEFAULT_ENV, extra={
-            r'SCRIPT_NAME': r'/script',
-        })
+        r = parse(DEFAULT_ENV, extra={r'SCRIPT_NAME': r'/script',})
 
         self.assertEqual(r.url, b'http://testserver/script')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -104,9 +95,7 @@
         self.assertEqual(r.dispatchparts, [])
         self.assertIsNone(r.dispatchpath)
 
-        r = parse(DEFAULT_ENV, extra={
-            r'SCRIPT_NAME': r'/multiple words',
-        })
+        r = parse(DEFAULT_ENV, extra={r'SCRIPT_NAME': r'/multiple words',})
 
         self.assertEqual(r.url, b'http://testserver/multiple%20words')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -117,9 +106,7 @@
         self.assertIsNone(r.dispatchpath)
 
     def testpathinfo(self):
-        r = parse(DEFAULT_ENV, extra={
-            r'PATH_INFO': r'',
-        })
+        r = parse(DEFAULT_ENV, extra={r'PATH_INFO': r'',})
 
         self.assertEqual(r.url, b'http://testserver')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -129,9 +116,7 @@
         self.assertEqual(r.dispatchparts, [])
         self.assertEqual(r.dispatchpath, b'')
 
-        r = parse(DEFAULT_ENV, extra={
-            r'PATH_INFO': r'/pathinfo',
-        })
+        r = parse(DEFAULT_ENV, extra={r'PATH_INFO': r'/pathinfo',})
 
         self.assertEqual(r.url, b'http://testserver/pathinfo')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -141,9 +126,7 @@
         self.assertEqual(r.dispatchparts, [b'pathinfo'])
         self.assertEqual(r.dispatchpath, b'pathinfo')
 
-        r = parse(DEFAULT_ENV, extra={
-            r'PATH_INFO': r'/one/two/',
-        })
+        r = parse(DEFAULT_ENV, extra={r'PATH_INFO': r'/one/two/',})
 
         self.assertEqual(r.url, b'http://testserver/one/two/')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -154,10 +137,10 @@
         self.assertEqual(r.dispatchpath, b'one/two')
 
     def testscriptandpathinfo(self):
-        r = parse(DEFAULT_ENV, extra={
-            r'SCRIPT_NAME': r'/script',
-            r'PATH_INFO': r'/pathinfo',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            extra={r'SCRIPT_NAME': r'/script', r'PATH_INFO': r'/pathinfo',},
+        )
 
         self.assertEqual(r.url, b'http://testserver/script/pathinfo')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -167,26 +150,34 @@
         self.assertEqual(r.dispatchparts, [b'pathinfo'])
         self.assertEqual(r.dispatchpath, b'pathinfo')
 
-        r = parse(DEFAULT_ENV, extra={
-            r'SCRIPT_NAME': r'/script1/script2',
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            extra={
+                r'SCRIPT_NAME': r'/script1/script2',
+                r'PATH_INFO': r'/path1/path2',
+            },
+        )
 
-        self.assertEqual(r.url,
-                         b'http://testserver/script1/script2/path1/path2')
+        self.assertEqual(
+            r.url, b'http://testserver/script1/script2/path1/path2'
+        )
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://testserver/script1/script2/path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://testserver/script1/script2/path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://testserver')
         self.assertEqual(r.apppath, b'/script1/script2')
         self.assertEqual(r.dispatchparts, [b'path1', b'path2'])
         self.assertEqual(r.dispatchpath, b'path1/path2')
 
-        r = parse(DEFAULT_ENV, extra={
-            r'HTTP_HOST': r'hostserver',
-            r'SCRIPT_NAME': r'/script',
-            r'PATH_INFO': r'/pathinfo',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            extra={
+                r'HTTP_HOST': r'hostserver',
+                r'SCRIPT_NAME': r'/script',
+                r'PATH_INFO': r'/pathinfo',
+            },
+        )
 
         self.assertEqual(r.url, b'http://hostserver/script/pathinfo')
         self.assertEqual(r.baseurl, b'http://hostserver')
@@ -199,32 +190,41 @@
     if not getattr(unittest.TestCase, 'assertRaisesRegex', False):
         # Python 3.7 deprecates the regex*p* version, but 2.7 lacks
         # the regex version.
-        assertRaisesRegex = (# camelcase-required
-            unittest.TestCase.assertRaisesRegexp)
+        assertRaisesRegex = (  # camelcase-required
+            unittest.TestCase.assertRaisesRegexp
+        )
 
     def testreponame(self):
         """repository path components get stripped from URL."""
 
-        with self.assertRaisesRegex(error.ProgrammingError,
-                                    'reponame requires PATH_INFO'):
+        with self.assertRaisesRegex(
+            error.ProgrammingError, 'reponame requires PATH_INFO'
+        ):
             parse(DEFAULT_ENV, reponame=b'repo')
 
-        with self.assertRaisesRegex(error.ProgrammingError,
-                                    'PATH_INFO does not begin with repo '
-                                    'name'):
-            parse(DEFAULT_ENV, reponame=b'repo', extra={
-                r'PATH_INFO': r'/pathinfo',
-            })
+        with self.assertRaisesRegex(
+            error.ProgrammingError, 'PATH_INFO does not begin with repo ' 'name'
+        ):
+            parse(
+                DEFAULT_ENV,
+                reponame=b'repo',
+                extra={r'PATH_INFO': r'/pathinfo',},
+            )
 
-        with self.assertRaisesRegex(error.ProgrammingError,
-                                    'reponame prefix of PATH_INFO'):
-            parse(DEFAULT_ENV, reponame=b'repo', extra={
-                r'PATH_INFO': r'/repoextra/path',
-            })
+        with self.assertRaisesRegex(
+            error.ProgrammingError, 'reponame prefix of PATH_INFO'
+        ):
+            parse(
+                DEFAULT_ENV,
+                reponame=b'repo',
+                extra={r'PATH_INFO': r'/repoextra/path',},
+            )
 
-        r = parse(DEFAULT_ENV, reponame=b'repo', extra={
-            r'PATH_INFO': r'/repo/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            reponame=b'repo',
+            extra={r'PATH_INFO': r'/repo/path1/path2',},
+        )
 
         self.assertEqual(r.url, b'http://testserver/repo/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
@@ -235,14 +235,17 @@
         self.assertEqual(r.dispatchpath, b'path1/path2')
         self.assertEqual(r.reponame, b'repo')
 
-        r = parse(DEFAULT_ENV, reponame=b'prefix/repo', extra={
-            r'PATH_INFO': r'/prefix/repo/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            reponame=b'prefix/repo',
+            extra={r'PATH_INFO': r'/prefix/repo/path1/path2',},
+        )
 
         self.assertEqual(r.url, b'http://testserver/prefix/repo/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://testserver/prefix/repo/path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://testserver/prefix/repo/path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://testserver')
         self.assertEqual(r.apppath, b'/prefix/repo')
         self.assertEqual(r.dispatchparts, [b'path1', b'path2'])
@@ -301,9 +304,11 @@
         self.assertIsNone(r.reponame)
 
         # With only PATH_INFO defined.
-        r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver', extra={
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            altbaseurl=b'http://altserver',
+            extra={r'PATH_INFO': r'/path1/path2',},
+        )
         self.assertEqual(r.url, b'http://testserver/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
         self.assertEqual(r.advertisedurl, b'http://altserver/path1/path2')
@@ -339,13 +344,16 @@
         self.assertIsNone(r.reponame)
 
         # PATH_INFO + path on alt URL.
-        r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath', extra={
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            altbaseurl=b'http://altserver/altpath',
+            extra={r'PATH_INFO': r'/path1/path2',},
+        )
         self.assertEqual(r.url, b'http://testserver/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://altserver/altpath/path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://altserver/altpath/path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://altserver')
         self.assertEqual(r.urlscheme, b'http')
         self.assertEqual(r.apppath, b'/altpath')
@@ -354,13 +362,16 @@
         self.assertIsNone(r.reponame)
 
         # PATH_INFO + path on alt URL with trailing slash.
-        r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath/', extra={
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            altbaseurl=b'http://altserver/altpath/',
+            extra={r'PATH_INFO': r'/path1/path2',},
+        )
         self.assertEqual(r.url, b'http://testserver/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://altserver/altpath//path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://altserver/altpath//path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://altserver')
         self.assertEqual(r.urlscheme, b'http')
         self.assertEqual(r.apppath, b'/altpath/')
@@ -369,10 +380,11 @@
         self.assertIsNone(r.reponame)
 
         # Local SCRIPT_NAME is ignored.
-        r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver', extra={
-            r'SCRIPT_NAME': r'/script',
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            altbaseurl=b'http://altserver',
+            extra={r'SCRIPT_NAME': r'/script', r'PATH_INFO': r'/path1/path2',},
+        )
         self.assertEqual(r.url, b'http://testserver/script/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
         self.assertEqual(r.advertisedurl, b'http://altserver/path1/path2')
@@ -384,14 +396,16 @@
         self.assertIsNone(r.reponame)
 
         # Use remote's path for script name, app path
-        r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altroot', extra={
-            r'SCRIPT_NAME': r'/script',
-            r'PATH_INFO': r'/path1/path2',
-        })
+        r = parse(
+            DEFAULT_ENV,
+            altbaseurl=b'http://altserver/altroot',
+            extra={r'SCRIPT_NAME': r'/script', r'PATH_INFO': r'/path1/path2',},
+        )
         self.assertEqual(r.url, b'http://testserver/script/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://altserver/altroot/path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://altserver/altroot/path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://altserver')
         self.assertEqual(r.urlscheme, b'http')
         self.assertEqual(r.apppath, b'/altroot')
@@ -400,23 +414,29 @@
         self.assertIsNone(r.reponame)
 
         # reponame is factored in properly.
-        r = parse(DEFAULT_ENV, reponame=b'repo',
-                  altbaseurl=b'http://altserver/altroot',
-                  extra={
+        r = parse(
+            DEFAULT_ENV,
+            reponame=b'repo',
+            altbaseurl=b'http://altserver/altroot',
+            extra={
                 r'SCRIPT_NAME': r'/script',
                 r'PATH_INFO': r'/repo/path1/path2',
-            })
+            },
+        )
 
         self.assertEqual(r.url, b'http://testserver/script/repo/path1/path2')
         self.assertEqual(r.baseurl, b'http://testserver')
-        self.assertEqual(r.advertisedurl,
-                         b'http://altserver/altroot/repo/path1/path2')
+        self.assertEqual(
+            r.advertisedurl, b'http://altserver/altroot/repo/path1/path2'
+        )
         self.assertEqual(r.advertisedbaseurl, b'http://altserver')
         self.assertEqual(r.apppath, b'/altroot/repo')
         self.assertEqual(r.dispatchparts, [b'path1', b'path2'])
         self.assertEqual(r.dispatchpath, b'path1/path2')
         self.assertEqual(r.reponame, b'repo')
 
+
 if __name__ == '__main__':
     import silenttestrunner
+
     silenttestrunner.main(__name__)