Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
bd6c0795
Kaydet (Commit)
bd6c0795
authored
Tem 25, 2010
tarafından
Michael Foord
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #4686 - add .args to exceptions in the configparsermodule
üst
4d4d1ce7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
17 deletions
+44
-17
configparser.py
Lib/configparser.py
+8
-1
test_cfgparser.py
Lib/test/test_cfgparser.py
+35
-15
python-wing.wpr
Misc/python-wing.wpr
+1
-1
No files found.
Lib/configparser.py
Dosyayı görüntüle @
bd6c0795
...
...
@@ -142,6 +142,7 @@ class NoSectionError(Error):
def
__init__
(
self
,
section
):
Error
.
__init__
(
self
,
'No section:
%
r'
%
(
section
,))
self
.
section
=
section
self
.
args
=
(
section
,
)
class
DuplicateSectionError
(
Error
):
"""Raised when a section is multiply-created."""
...
...
@@ -149,6 +150,7 @@ class DuplicateSectionError(Error):
def
__init__
(
self
,
section
):
Error
.
__init__
(
self
,
"Section
%
r already exists"
%
section
)
self
.
section
=
section
self
.
args
=
(
section
,
)
class
NoOptionError
(
Error
):
"""A requested option was not found."""
...
...
@@ -158,6 +160,7 @@ class NoOptionError(Error):
(
option
,
section
))
self
.
option
=
option
self
.
section
=
section
self
.
args
=
(
option
,
section
)
class
InterpolationError
(
Error
):
"""Base class for interpolation-related exceptions."""
...
...
@@ -166,6 +169,7 @@ class InterpolationError(Error):
Error
.
__init__
(
self
,
msg
)
self
.
option
=
option
self
.
section
=
section
self
.
args
=
(
option
,
section
,
msg
)
class
InterpolationMissingOptionError
(
InterpolationError
):
"""A string substitution required a setting which was not available."""
...
...
@@ -179,6 +183,7 @@ class InterpolationMissingOptionError(InterpolationError):
%
(
section
,
option
,
reference
,
rawval
))
InterpolationError
.
__init__
(
self
,
option
,
section
,
msg
)
self
.
reference
=
reference
self
.
args
=
(
option
,
section
,
rawval
,
reference
)
class
InterpolationSyntaxError
(
InterpolationError
):
"""Raised when the source text into which substitutions are made
...
...
@@ -194,6 +199,7 @@ class InterpolationDepthError(InterpolationError):
"
\t
rawval :
%
s
\n
"
%
(
section
,
option
,
rawval
))
InterpolationError
.
__init__
(
self
,
option
,
section
,
msg
)
self
.
args
=
(
option
,
section
,
rawval
)
class
ParsingError
(
Error
):
"""Raised when a configuration file does not follow legal syntax."""
...
...
@@ -202,6 +208,7 @@ class ParsingError(Error):
Error
.
__init__
(
self
,
'File contains parsing errors:
%
s'
%
filename
)
self
.
filename
=
filename
self
.
errors
=
[]
self
.
args
=
(
filename
,
)
def
append
(
self
,
lineno
,
line
):
self
.
errors
.
append
((
lineno
,
line
))
...
...
@@ -218,7 +225,7 @@ class MissingSectionHeaderError(ParsingError):
self
.
filename
=
filename
self
.
lineno
=
lineno
self
.
line
=
line
self
.
args
=
(
filename
,
lineno
,
line
)
class
RawConfigParser
:
def
__init__
(
self
,
defaults
=
None
,
dict_type
=
_default_dict
,
...
...
Lib/test/test_cfgparser.py
Dosyayı görüntüle @
bd6c0795
...
...
@@ -107,8 +107,9 @@ class TestCaseBase(unittest.TestCase):
"remove_option() failed to report non-existence of option"
" that was removed"
)
self
.
assertRaises
(
configparser
.
NoSectionError
,
cf
.
remove_option
,
'No Such Section'
,
'foo'
)
with
self
.
assertRaises
(
configparser
.
NoSectionError
)
as
cm
:
cf
.
remove_option
(
'No Such Section'
,
'foo'
)
self
.
assertEqual
(
cm
.
exception
.
args
,
(
'No Such Section'
,))
eq
(
cf
.
get
(
'Long Line'
,
'foo'
),
'this line is much, much longer than my editor
\n
likes it.'
)
...
...
@@ -160,20 +161,24 @@ class TestCaseBase(unittest.TestCase):
def
test_parse_errors
(
self
):
self
.
newconfig
()
self
.
parse_error
(
configparser
.
ParsingError
,
e
=
self
.
parse_error
(
configparser
.
ParsingError
,
"[Foo]
\n
extra-spaces: splat
\n
"
)
self
.
assertEqual
(
e
.
args
,
(
'<???>'
,))
self
.
parse_error
(
configparser
.
ParsingError
,
"[Foo]
\n
extra-spaces= splat
\n
"
)
self
.
parse_error
(
configparser
.
ParsingError
,
"[Foo]
\n
:value-without-option-name
\n
"
)
self
.
parse_error
(
configparser
.
ParsingError
,
"[Foo]
\n
=value-without-option-name
\n
"
)
self
.
parse_error
(
configparser
.
MissingSectionHeaderError
,
e
=
self
.
parse_error
(
configparser
.
MissingSectionHeaderError
,
"No Section!
\n
"
)
self
.
assertEqual
(
e
.
args
,
(
'<???>'
,
1
,
"No Section!
\n
"
))
def
parse_error
(
self
,
exc
,
src
):
sio
=
io
.
StringIO
(
src
)
self
.
assertRaises
(
exc
,
self
.
cf
.
readfp
,
sio
)
with
self
.
assertRaises
(
exc
)
as
cm
:
self
.
cf
.
readfp
(
sio
)
return
cm
.
exception
def
test_query_errors
(
self
):
cf
=
self
.
newconfig
()
...
...
@@ -181,13 +186,15 @@ class TestCaseBase(unittest.TestCase):
"new ConfigParser should have no defined sections"
)
self
.
assertFalse
(
cf
.
has_section
(
"Foo"
),
"new ConfigParser should have no acknowledged sections"
)
self
.
assertRaises
(
configparser
.
NoSectionError
,
cf
.
options
,
"Foo"
)
self
.
assertRaises
(
configparser
.
NoSectionError
,
cf
.
set
,
"foo"
,
"bar"
,
"value"
)
self
.
get_error
(
configparser
.
NoSectionError
,
"foo"
,
"bar"
)
with
self
.
assertRaises
(
configparser
.
NoSectionError
)
as
cm
:
cf
.
options
(
"Foo"
)
with
self
.
assertRaises
(
configparser
.
NoSectionError
)
as
cm
:
cf
.
set
(
"foo"
,
"bar"
,
"value"
)
e
=
self
.
get_error
(
configparser
.
NoSectionError
,
"foo"
,
"bar"
)
self
.
assertEqual
(
e
.
args
,
(
"foo"
,))
cf
.
add_section
(
"foo"
)
self
.
get_error
(
configparser
.
NoOptionError
,
"foo"
,
"bar"
)
e
=
self
.
get_error
(
configparser
.
NoOptionError
,
"foo"
,
"bar"
)
self
.
assertEqual
(
e
.
args
,
(
"bar"
,
"foo"
))
def
get_error
(
self
,
exc
,
section
,
option
):
try
:
...
...
@@ -226,8 +233,9 @@ class TestCaseBase(unittest.TestCase):
def
test_weird_errors
(
self
):
cf
=
self
.
newconfig
()
cf
.
add_section
(
"Foo"
)
self
.
assertRaises
(
configparser
.
DuplicateSectionError
,
cf
.
add_section
,
"Foo"
)
with
self
.
assertRaises
(
configparser
.
DuplicateSectionError
)
as
cm
:
cf
.
add_section
(
"Foo"
)
self
.
assertEqual
(
cm
.
exception
.
args
,
(
"Foo"
,))
def
test_write
(
self
):
config_string
=
(
...
...
@@ -346,6 +354,11 @@ class ConfigParserTestCase(TestCaseBase):
config_class
=
configparser
.
ConfigParser
def
test_interpolation
(
self
):
rawval
=
{
configparser
.
ConfigParser
:
"something
%(with11)
s "
\
"lots of interpolation (11 steps)"
,
configparser
.
SafeConfigParser
:
"
%(with1)
s"
,
}
cf
=
self
.
get_interpolation_config
()
eq
=
self
.
assertEqual
eq
(
cf
.
get
(
"Foo"
,
"getname"
),
"Foo"
)
...
...
@@ -354,15 +367,22 @@ class ConfigParserTestCase(TestCaseBase):
"something with lots of interpolation (9 steps)"
)
eq
(
cf
.
get
(
"Foo"
,
"bar10"
),
"something with lots of interpolation (10 steps)"
)
self
.
get_error
(
configparser
.
InterpolationDepthError
,
"Foo"
,
"bar11"
)
e
=
self
.
get_error
(
configparser
.
InterpolationDepthError
,
"Foo"
,
"bar11"
)
self
.
assertEqual
(
e
.
args
,
(
"bar11"
,
"Foo"
,
rawval
[
self
.
config_class
]))
def
test_interpolation_missing_value
(
self
):
rawval
=
{
configparser
.
ConfigParser
:
'
%(reference)
s'
,
configparser
.
SafeConfigParser
:
''
,
}
self
.
get_interpolation_config
()
e
=
self
.
get_error
(
configparser
.
InterpolationError
,
e
=
self
.
get_error
(
configparser
.
Interpolation
MissingOption
Error
,
"Interpolation Error"
,
"name"
)
self
.
assertEqual
(
e
.
reference
,
"reference"
)
self
.
assertEqual
(
e
.
section
,
"Interpolation Error"
)
self
.
assertEqual
(
e
.
option
,
"name"
)
self
.
assertEqual
(
e
.
args
,
(
'name'
,
'Interpolation Error'
,
rawval
[
self
.
config_class
],
'reference'
))
def
test_items
(
self
):
self
.
check_items_config
([(
'default'
,
'<default>'
),
...
...
Misc/python-wing.wpr
Dosyayı görüntüle @
bd6c0795
...
...
@@ -5,7 +5,7 @@
##################################################################
[project attributes]
proj.directory-list = [{'dirloc': loc('..'),
'excludes':
()
,
'excludes':
[u'Lib/__pycache__']
,
'filter': '*',
'include_hidden': False,
'recursive': True,
...
...
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