tests/test-wsgirequest.py
branchstable
changeset 45004 2632c1ed8f34
parent 43506 9f70512ae2cf
child 45942 89a2afe31e82
--- a/tests/test-wsgirequest.py	Thu Jun 25 03:10:13 2020 +0200
+++ b/tests/test-wsgirequest.py	Thu Jun 25 03:46:07 2020 +0200
@@ -3,7 +3,7 @@
 import unittest
 
 from mercurial.hgweb import request as requestmod
-from mercurial import error
+from mercurial import error, pycompat
 
 DEFAULT_ENV = {
     'REQUEST_METHOD': 'GET',
@@ -432,6 +432,18 @@
         self.assertEqual(r.dispatchpath, b'path1/path2')
         self.assertEqual(r.reponame, b'repo')
 
+    def testenvencoding(self):
+        if pycompat.iswindows:
+            # On Windows, we can't generally know which non-ASCII characters
+            # are supported.
+            r = parse(DEFAULT_ENV, extra={'foo': 'bar'})
+            self.assertEqual(r.rawenv[b'foo'], b'bar')
+        else:
+            # Unix is byte-based. Therefore we test all possible bytes.
+            b = b''.join(pycompat.bytechr(i) for i in range(256))
+            r = parse(DEFAULT_ENV, extra={'foo': pycompat.fsdecode(b)})
+            self.assertEqual(r.rawenv[b'foo'], b)
+
 
 if __name__ == '__main__':
     import silenttestrunner