Fixing - Issue7026 - RuntimeError: dictionary changed size during iteration. Patch by flox
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index c74b101..10c8d90 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -6,6 +6,7 @@
 from test import test_support
 import os
 import mimetools
+import random
 import tempfile
 import StringIO
 
@@ -101,7 +102,7 @@
         # Records changes to env vars
         self.env = test_support.EnvironmentVarGuard()
         # Delete all proxy related env vars
-        for k, v in os.environ.iteritems():
+        for k in os.environ.keys():
             if 'proxy' in k.lower():
                 self.env.unset(k)
 
@@ -409,6 +410,13 @@
         self.assertEqual(urllib.quote_plus('alpha+beta gamma', '+'),
                          'alpha+beta+gamma')
 
+    def test_quote_leak(self):
+        # bug 5596 - highlight the refleak in the internal _safemaps cache
+        safe = ''.join(chr(random.randrange(128)) for i in '123456')
+        text = 'abcdefghijklmnopqrstuvwxyz'
+        result = urllib.quote(text, safe=safe)
+        self.assertEqual(result, text)
+
 class UnquotingTests(unittest.TestCase):
     """Tests for unquote() and unquote_plus()