mirror of
https://github.com/python/cpython.git
synced 2025-11-12 07:02:33 +00:00
Avoid using items() in environ.update(). Fixes #1124513.
Will backport to 2.4.
This commit is contained in:
parent
3040b19976
commit
5510f65f5a
2 changed files with 19 additions and 9 deletions
22
Lib/os.py
22
Lib/os.py
|
|
@ -445,12 +445,17 @@ else:
|
||||||
def update(self, dict=None, **kwargs):
|
def update(self, dict=None, **kwargs):
|
||||||
if dict:
|
if dict:
|
||||||
try:
|
try:
|
||||||
items = dict.items()
|
keys = dict.keys()
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# List of (key, value)
|
# List of (key, value)
|
||||||
items = dict
|
for k, v in dict:
|
||||||
for k, v in items:
|
|
||||||
self[k] = v
|
self[k] = v
|
||||||
|
else:
|
||||||
|
# got keys
|
||||||
|
# cannot use items(), since mappings
|
||||||
|
# may not have them.
|
||||||
|
for k in keys:
|
||||||
|
self[k] = dict[k]
|
||||||
if kwargs:
|
if kwargs:
|
||||||
self.update(kwargs)
|
self.update(kwargs)
|
||||||
def copy(self):
|
def copy(self):
|
||||||
|
|
@ -467,12 +472,17 @@ else:
|
||||||
def update(self, dict=None, **kwargs):
|
def update(self, dict=None, **kwargs):
|
||||||
if dict:
|
if dict:
|
||||||
try:
|
try:
|
||||||
items = dict.items()
|
keys = dict.keys()
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# List of (key, value)
|
# List of (key, value)
|
||||||
items = dict
|
for k, v in dict:
|
||||||
for k, v in items:
|
|
||||||
self[k] = v
|
self[k] = v
|
||||||
|
else:
|
||||||
|
# got keys
|
||||||
|
# cannot use items(), since mappings
|
||||||
|
# may not have them.
|
||||||
|
for k in keys:
|
||||||
|
self[k] = dict[k]
|
||||||
if kwargs:
|
if kwargs:
|
||||||
self.update(kwargs)
|
self.update(kwargs)
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,7 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
||||||
os.environ.update(self.__save)
|
os.environ.update(self.__save)
|
||||||
|
|
||||||
# Bug 1110478
|
# Bug 1110478
|
||||||
def test_update(self):
|
def test_update2(self):
|
||||||
if os.path.exists("/bin/sh"):
|
if os.path.exists("/bin/sh"):
|
||||||
os.environ.update(HELLO="World")
|
os.environ.update(HELLO="World")
|
||||||
value = os.popen("/bin/sh -c 'echo $HELLO'").read().strip()
|
value = os.popen("/bin/sh -c 'echo $HELLO'").read().strip()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue