Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d2a577d

Browse files
committed
Merged revisions 78316 via svnmerge from
svn+ssh://[email protected]/python/branches/py3k ........ r78316 | ezio.melotti | 2010-02-22 17:59:01 +0200 (Mon, 22 Feb 2010) | 1 line #7310: fix the repr() of os.environ ........
1 parent f9793a3 commit d2a577d

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

Lib/os.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,22 +387,32 @@ def __init__(self, environ, keymap, putenv, unsetenv):
387387
self.data = data = {}
388388
for key, value in environ.items():
389389
data[keymap(key)] = str(value)
390+
390391
def __getitem__(self, key):
391392
return self.data[self.keymap(key)]
393+
392394
def __setitem__(self, key, value):
393395
value = str(value)
394396
self.putenv(key, value)
395397
self.data[self.keymap(key)] = value
398+
396399
def __delitem__(self, key):
397400
self.unsetenv(key)
398401
del self.data[self.keymap(key)]
402+
399403
def __iter__(self):
400404
for key in self.data:
401405
yield key
406+
402407
def __len__(self):
403408
return len(self.data)
409+
410+
def __repr__(self):
411+
return 'environ({!r})'.format(self.data)
412+
404413
def copy(self):
405414
return dict(self)
415+
406416
def setdefault(self, key, value):
407417
if key not in self:
408418
self[key] = value

Lib/test/test_os.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,14 @@ def test_items(self):
400400
for key, value in self._reference().items():
401401
self.assertEqual(os.environ.get(key), value)
402402

403+
# Issue 7310
404+
def test___repr__(self):
405+
"""Check that the repr() of os.environ looks like environ({...})."""
406+
env = os.environ
407+
self.assertTrue(isinstance(env.data, dict))
408+
self.assertEqual(repr(env), 'environ({!r})'.format(env.data))
409+
410+
403411
class WalkTests(unittest.TestCase):
404412
"""Tests for os.walk()."""
405413

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ Core and Builtins
7979
Library
8080
-------
8181

82+
- Issue #7310: fix the __repr__ of os.environ to show the environment variables.
83+
8284
- Issue #7970: email.Generator.flatten now correctly flattens message/rfc822
8385
messages parsed by email.Parser.HeaderParser.
8486

0 commit comments

Comments
 (0)