Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
8d518970
Commit
8d518970
authored
Dec 31, 2012
by
Łukasz Langa
Browse files
Options
Browse Files
Download
Plain Diff
Merged `parser['DEFAULT'].__setitem__` fix (issue #16820) from 3.3.
parents
528b825c
0210194d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
1 deletion
+32
-1
Lib/configparser.py
Lib/configparser.py
+4
-1
Lib/test/test_configparser.py
Lib/test/test_configparser.py
+28
-0
No files found.
Lib/configparser.py
View file @
8d518970
...
@@ -960,7 +960,10 @@ class RawConfigParser(MutableMapping):
...
@@ -960,7 +960,10 @@ class RawConfigParser(MutableMapping):
# XXX this is not atomic if read_dict fails at any point. Then again,
# XXX this is not atomic if read_dict fails at any point. Then again,
# no update method in configparser is atomic in this implementation.
# no update method in configparser is atomic in this implementation.
self.remove_section(key)
if key == self.default_section:
self._defaults.clear()
else:
self.remove_section(key)
self.read_dict({key: value})
self.read_dict({key: value})
def __delitem__(self, key):
def __delitem__(self, key):
...
...
Lib/test/test_configparser.py
View file @
8d518970
...
@@ -797,6 +797,34 @@ boolean {0[0]} NO
...
@@ -797,6 +797,34 @@ boolean {0[0]} NO
self
.
assertEqual
(
set
(
cf
.
sections
()),
set
())
self
.
assertEqual
(
set
(
cf
.
sections
()),
set
())
self
.
assertEqual
(
set
(
cf
[
self
.
default_section
].
keys
()),
{
'foo'
})
self
.
assertEqual
(
set
(
cf
[
self
.
default_section
].
keys
()),
{
'foo'
})
def
test_setitem
(
self
):
cf
=
self
.
fromstring
(
"""
[section1]
name1 {0[0]} value1
[section2]
name2 {0[0]} value2
[section3]
name3 {0[0]} value3
"""
.
format
(
self
.
delimiters
),
defaults
=
{
"nameD"
:
"valueD"
})
self
.
assertEqual
(
set
(
cf
[
'section1'
].
keys
()),
{
'name1'
,
'named'
})
self
.
assertEqual
(
set
(
cf
[
'section2'
].
keys
()),
{
'name2'
,
'named'
})
self
.
assertEqual
(
set
(
cf
[
'section3'
].
keys
()),
{
'name3'
,
'named'
})
self
.
assertEqual
(
cf
[
'section1'
][
'name1'
],
'value1'
)
self
.
assertEqual
(
cf
[
'section2'
][
'name2'
],
'value2'
)
self
.
assertEqual
(
cf
[
'section3'
][
'name3'
],
'value3'
)
cf
[
'section2'
]
=
{
'name22'
:
'value22'
}
self
.
assertEqual
(
set
(
cf
[
'section2'
].
keys
()),
{
'name22'
,
'named'
})
self
.
assertEqual
(
cf
[
'section2'
][
'name22'
],
'value22'
)
self
.
assertNotIn
(
'name2'
,
cf
[
'section2'
])
cf
[
'section3'
]
=
{}
self
.
assertEqual
(
set
(
cf
[
'section3'
].
keys
()),
{
'named'
})
self
.
assertNotIn
(
'name3'
,
cf
[
'section3'
])
cf
[
self
.
default_section
]
=
{}
self
.
assertEqual
(
set
(
cf
[
self
.
default_section
].
keys
()),
set
())
self
.
assertEqual
(
set
(
cf
[
'section1'
].
keys
()),
{
'name1'
})
self
.
assertEqual
(
set
(
cf
[
'section2'
].
keys
()),
{
'name22'
})
self
.
assertEqual
(
set
(
cf
[
'section3'
].
keys
()),
set
())
class
StrictTestCase
(
BasicTestCase
):
class
StrictTestCase
(
BasicTestCase
):
config_class
=
configparser
.
RawConfigParser
config_class
=
configparser
.
RawConfigParser
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment