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
9f7af8d4
Kaydet (Commit)
9f7af8d4
authored
Mar 26, 2008
tarafından
Jerry Seutter
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Changed test so it no longer runs as a side effect of importing.
üst
22b3e3af
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
188 additions
and
175 deletions
+188
-175
test_format.py
Lib/test/test_format.py
+188
-175
No files found.
Lib/test/test_format.py
Dosyayı görüntüle @
9f7af8d4
from
test.test_support
import
verbose
,
have_unicode
,
TestFailed
import
sys
import
sys
from
test.test_support
import
MAX_Py_ssize_t
from
test.test_support
import
verbose
,
have_unicode
,
TestFailed
maxsize
=
MAX_Py_ssize_t
import
test.test_support
as
test_support
import
unittest
maxsize
=
test_support
.
MAX_Py_ssize_t
# test string formatting operator (I am not sure if this is being tested
# test string formatting operator (I am not sure if this is being tested
# elsewhere but, surely, some of the given cases are *not* tested because
# elsewhere but, surely, some of the given cases are *not* tested because
...
@@ -11,6 +13,7 @@ maxsize = MAX_Py_ssize_t
...
@@ -11,6 +13,7 @@ maxsize = MAX_Py_ssize_t
overflowok
=
1
overflowok
=
1
overflowrequired
=
0
overflowrequired
=
0
def
testformat
(
formatstr
,
args
,
output
=
None
,
limit
=
None
):
def
testformat
(
formatstr
,
args
,
output
=
None
,
limit
=
None
):
if
verbose
:
if
verbose
:
if
output
:
if
output
:
...
@@ -51,186 +54,189 @@ def testformat(formatstr, args, output=None, limit=None):
...
@@ -51,186 +54,189 @@ def testformat(formatstr, args, output=None, limit=None):
if
verbose
:
if
verbose
:
print
'yes'
print
'yes'
def
testboth
(
formatstr
,
*
args
):
def
testboth
(
formatstr
,
*
args
):
testformat
(
formatstr
,
*
args
)
testformat
(
formatstr
,
*
args
)
if
have_unicode
:
if
have_unicode
:
testformat
(
unicode
(
formatstr
),
*
args
)
testformat
(
unicode
(
formatstr
),
*
args
)
testboth
(
"
%.1
d"
,
(
1
,),
"1"
)
class
FormatTest
(
unittest
.
TestCase
):
testboth
(
"
%.*
d"
,
(
sys
.
maxint
,
1
))
# expect overflow
def
test_format
(
self
):
testboth
(
"
%.100
d"
,
(
1
,),
'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%.1
d"
,
(
1
,),
"1"
)
testboth
(
"
%#.117
x"
,
(
1
,),
'0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%.*
d"
,
(
sys
.
maxint
,
1
))
# expect overflow
testboth
(
"
%#.118
x"
,
(
1
,),
'0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%.100
d"
,
(
1
,),
'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%#.117
x"
,
(
1
,),
'0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%#.118
x"
,
(
1
,),
'0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
)
testboth
(
"
%
f"
,
(
1.0
,),
"1.000000"
)
testboth
(
"
%
f"
,
(
1.0
,),
"1.000000"
)
# these are trying to test the limits of the internal magic-number-length
# these are trying to test the limits of the internal magic-number-length
# formatting buffer, if that number changes then these tests are less
# formatting buffer, if that number changes then these tests are less
# effective
# effective
testboth
(
"
%#.*
g"
,
(
109
,
-
1.e+49
/
3.
))
testboth
(
"
%#.*
g"
,
(
109
,
-
1.e+49
/
3.
))
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+49
/
3.
))
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+49
/
3.
))
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+100
/
3.
))
# test some ridiculously large precision, expect overflow
# test some ridiculously large precision, expect overflow
testboth
(
'
%12.*
f'
,
(
123456
,
1.0
))
testboth
(
'
%12.*
f'
,
(
123456
,
1.0
))
# check for internal overflow validation on length of precision
# check for internal overflow validation on length of precision
overflowrequired
=
1
overflowrequired
=
1
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
g"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
G"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
G"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
f"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
f"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
F"
,
(
110
,
-
1.e+100
/
3.
))
testboth
(
"
%#.*
F"
,
(
110
,
-
1.e+100
/
3.
))
overflowrequired
=
0
overflowrequired
=
0
# Formatting of long integers. Overflow is not ok
# Formatting of long integers. Overflow is not ok
overflowok
=
0
overflowok
=
0
testboth
(
"
%
x"
,
10L
,
"a"
)
testboth
(
"
%
x"
,
10L
,
"a"
)
testboth
(
"
%
x"
,
100000000000L
,
"174876e800"
)
testboth
(
"
%
x"
,
100000000000L
,
"174876e800"
)
testboth
(
"
%
o"
,
10L
,
"12"
)
testboth
(
"
%
o"
,
10L
,
"12"
)
testboth
(
"
%
o"
,
100000000000L
,
"1351035564000"
)
testboth
(
"
%
o"
,
100000000000L
,
"1351035564000"
)
testboth
(
"
%
d"
,
10L
,
"10"
)
testboth
(
"
%
d"
,
10L
,
"10"
)
testboth
(
"
%
d"
,
100000000000L
,
"100000000000"
)
testboth
(
"
%
d"
,
100000000000L
,
"100000000000"
)
big
=
123456789012345678901234567890L
big
=
123456789012345678901234567890L
testboth
(
"
%
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%5
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%5
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%31
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%31
d"
,
-
big
,
"-123456789012345678901234567890"
)
testboth
(
"
%32
d"
,
-
big
,
" -123456789012345678901234567890"
)
testboth
(
"
%32
d"
,
-
big
,
" -123456789012345678901234567890"
)
testboth
(
"
%-32
d"
,
-
big
,
"-123456789012345678901234567890 "
)
testboth
(
"
%-32
d"
,
-
big
,
"-123456789012345678901234567890 "
)
testboth
(
"
%032
d"
,
-
big
,
"-0123456789012345678901234567890"
)
testboth
(
"
%032
d"
,
-
big
,
"-0123456789012345678901234567890"
)
testboth
(
"
%-032
d"
,
-
big
,
"-123456789012345678901234567890 "
)
testboth
(
"
%-032
d"
,
-
big
,
"-123456789012345678901234567890 "
)
testboth
(
"
%034
d"
,
-
big
,
"-000123456789012345678901234567890"
)
testboth
(
"
%034
d"
,
-
big
,
"-000123456789012345678901234567890"
)
testboth
(
"
%034
d"
,
big
,
"0000123456789012345678901234567890"
)
testboth
(
"
%034
d"
,
big
,
"0000123456789012345678901234567890"
)
testboth
(
"
%0+34
d"
,
big
,
"+000123456789012345678901234567890"
)
testboth
(
"
%0+34
d"
,
big
,
"+000123456789012345678901234567890"
)
testboth
(
"
%+34
d"
,
big
,
" +123456789012345678901234567890"
)
testboth
(
"
%+34
d"
,
big
,
" +123456789012345678901234567890"
)
testboth
(
"
%34
d"
,
big
,
" 123456789012345678901234567890"
)
testboth
(
"
%34
d"
,
big
,
" 123456789012345678901234567890"
)
testboth
(
"
%.2
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%.2
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%.30
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%.30
d"
,
big
,
"123456789012345678901234567890"
)
testboth
(
"
%.31
d"
,
big
,
"0123456789012345678901234567890"
)
testboth
(
"
%.31
d"
,
big
,
"0123456789012345678901234567890"
)
testboth
(
"
%32.31
d"
,
big
,
" 0123456789012345678901234567890"
)
testboth
(
"
%32.31
d"
,
big
,
" 0123456789012345678901234567890"
)
testboth
(
"
%
d"
,
float
(
big
),
"123456________________________"
,
6
)
testboth
(
"
%
d"
,
float
(
big
),
"123456________________________"
,
6
)
big
=
0x1234567890abcdef12345
L
# 21 hex digits
big
=
0x1234567890abcdef12345
L
# 21 hex digits
testboth
(
"
%
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%5
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%5
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%22
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%22
x"
,
-
big
,
"-1234567890abcdef12345"
)
testboth
(
"
%23
x"
,
-
big
,
" -1234567890abcdef12345"
)
testboth
(
"
%23
x"
,
-
big
,
" -1234567890abcdef12345"
)
testboth
(
"
%-23
x"
,
-
big
,
"-1234567890abcdef12345 "
)
testboth
(
"
%-23
x"
,
-
big
,
"-1234567890abcdef12345 "
)
testboth
(
"
%023
x"
,
-
big
,
"-01234567890abcdef12345"
)
testboth
(
"
%023
x"
,
-
big
,
"-01234567890abcdef12345"
)
testboth
(
"
%-023
x"
,
-
big
,
"-1234567890abcdef12345 "
)
testboth
(
"
%-023
x"
,
-
big
,
"-1234567890abcdef12345 "
)
testboth
(
"
%025
x"
,
-
big
,
"-0001234567890abcdef12345"
)
testboth
(
"
%025
x"
,
-
big
,
"-0001234567890abcdef12345"
)
testboth
(
"
%025
x"
,
big
,
"00001234567890abcdef12345"
)
testboth
(
"
%025
x"
,
big
,
"00001234567890abcdef12345"
)
testboth
(
"
%0+25
x"
,
big
,
"+0001234567890abcdef12345"
)
testboth
(
"
%0+25
x"
,
big
,
"+0001234567890abcdef12345"
)
testboth
(
"
%+25
x"
,
big
,
" +1234567890abcdef12345"
)
testboth
(
"
%+25
x"
,
big
,
" +1234567890abcdef12345"
)
testboth
(
"
%25
x"
,
big
,
" 1234567890abcdef12345"
)
testboth
(
"
%25
x"
,
big
,
" 1234567890abcdef12345"
)
testboth
(
"
%.2
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%.2
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%.21
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%.21
x"
,
big
,
"1234567890abcdef12345"
)
testboth
(
"
%.22
x"
,
big
,
"01234567890abcdef12345"
)
testboth
(
"
%.22
x"
,
big
,
"01234567890abcdef12345"
)
testboth
(
"
%23.22
x"
,
big
,
" 01234567890abcdef12345"
)
testboth
(
"
%23.22
x"
,
big
,
" 01234567890abcdef12345"
)
testboth
(
"
%-23.22
x"
,
big
,
"01234567890abcdef12345 "
)
testboth
(
"
%-23.22
x"
,
big
,
"01234567890abcdef12345 "
)
testboth
(
"
%
X"
,
big
,
"1234567890ABCDEF12345"
)
testboth
(
"
%
X"
,
big
,
"1234567890ABCDEF12345"
)
testboth
(
"
%#
X"
,
big
,
"0X1234567890ABCDEF12345"
)
testboth
(
"
%#
X"
,
big
,
"0X1234567890ABCDEF12345"
)
testboth
(
"
%#
x"
,
big
,
"0x1234567890abcdef12345"
)
testboth
(
"
%#
x"
,
big
,
"0x1234567890abcdef12345"
)
testboth
(
"
%#
x"
,
-
big
,
"-0x1234567890abcdef12345"
)
testboth
(
"
%#
x"
,
-
big
,
"-0x1234567890abcdef12345"
)
testboth
(
"
%#.23
x"
,
-
big
,
"-0x001234567890abcdef12345"
)
testboth
(
"
%#.23
x"
,
-
big
,
"-0x001234567890abcdef12345"
)
testboth
(
"
%#+.23
x"
,
big
,
"+0x001234567890abcdef12345"
)
testboth
(
"
%#+.23
x"
,
big
,
"+0x001234567890abcdef12345"
)
testboth
(
"
%# .23
x"
,
big
,
" 0x001234567890abcdef12345"
)
testboth
(
"
%# .23
x"
,
big
,
" 0x001234567890abcdef12345"
)
testboth
(
"
%#+.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#+.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#-+.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#-+.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#-+26.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#-+26.23
X"
,
big
,
"+0X001234567890ABCDEF12345"
)
testboth
(
"
%#-+27.23
X"
,
big
,
"+0X001234567890ABCDEF12345 "
)
testboth
(
"
%#-+27.23
X"
,
big
,
"+0X001234567890ABCDEF12345 "
)
testboth
(
"
%#+27.23
X"
,
big
,
" +0X001234567890ABCDEF12345"
)
testboth
(
"
%#+27.23
X"
,
big
,
" +0X001234567890ABCDEF12345"
)
# next one gets two leading zeroes from precision, and another from the
# next one gets two leading zeroes from precision, and another from the
# 0 flag and the width
# 0 flag and the width
testboth
(
"
%#+027.23
X"
,
big
,
"+0X0001234567890ABCDEF12345"
)
testboth
(
"
%#+027.23
X"
,
big
,
"+0X0001234567890ABCDEF12345"
)
# same, except no 0 flag
# same, except no 0 flag
testboth
(
"
%#+27.23
X"
,
big
,
" +0X001234567890ABCDEF12345"
)
testboth
(
"
%#+27.23
X"
,
big
,
" +0X001234567890ABCDEF12345"
)
testboth
(
"
%
x"
,
float
(
big
),
"123456_______________"
,
6
)
testboth
(
"
%
x"
,
float
(
big
),
"123456_______________"
,
6
)
big
=
012345670123456701234567012345670
L
# 32 octal digits
big
=
012345670123456701234567012345670
L
# 32 octal digits
testboth
(
"
%
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%5
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%5
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%33
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%33
o"
,
-
big
,
"-12345670123456701234567012345670"
)
testboth
(
"
%34
o"
,
-
big
,
" -12345670123456701234567012345670"
)
testboth
(
"
%34
o"
,
-
big
,
" -12345670123456701234567012345670"
)
testboth
(
"
%-34
o"
,
-
big
,
"-12345670123456701234567012345670 "
)
testboth
(
"
%-34
o"
,
-
big
,
"-12345670123456701234567012345670 "
)
testboth
(
"
%034
o"
,
-
big
,
"-012345670123456701234567012345670"
)
testboth
(
"
%034
o"
,
-
big
,
"-012345670123456701234567012345670"
)
testboth
(
"
%-034
o"
,
-
big
,
"-12345670123456701234567012345670 "
)
testboth
(
"
%-034
o"
,
-
big
,
"-12345670123456701234567012345670 "
)
testboth
(
"
%036
o"
,
-
big
,
"-00012345670123456701234567012345670"
)
testboth
(
"
%036
o"
,
-
big
,
"-00012345670123456701234567012345670"
)
testboth
(
"
%036
o"
,
big
,
"000012345670123456701234567012345670"
)
testboth
(
"
%036
o"
,
big
,
"000012345670123456701234567012345670"
)
testboth
(
"
%0+36
o"
,
big
,
"+00012345670123456701234567012345670"
)
testboth
(
"
%0+36
o"
,
big
,
"+00012345670123456701234567012345670"
)
testboth
(
"
%+36
o"
,
big
,
" +12345670123456701234567012345670"
)
testboth
(
"
%+36
o"
,
big
,
" +12345670123456701234567012345670"
)
testboth
(
"
%36
o"
,
big
,
" 12345670123456701234567012345670"
)
testboth
(
"
%36
o"
,
big
,
" 12345670123456701234567012345670"
)
testboth
(
"
%.2
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%.2
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%.32
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%.32
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%.33
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%.33
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%34.33
o"
,
big
,
" 012345670123456701234567012345670"
)
testboth
(
"
%34.33
o"
,
big
,
" 012345670123456701234567012345670"
)
testboth
(
"
%-34.33
o"
,
big
,
"012345670123456701234567012345670 "
)
testboth
(
"
%-34.33
o"
,
big
,
"012345670123456701234567012345670 "
)
testboth
(
"
%
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%
o"
,
big
,
"12345670123456701234567012345670"
)
testboth
(
"
%#
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%#
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%#
o"
,
-
big
,
"-012345670123456701234567012345670"
)
testboth
(
"
%#
o"
,
-
big
,
"-012345670123456701234567012345670"
)
testboth
(
"
%#.34
o"
,
-
big
,
"-0012345670123456701234567012345670"
)
testboth
(
"
%#.34
o"
,
-
big
,
"-0012345670123456701234567012345670"
)
testboth
(
"
%#+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%#+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%# .34
o"
,
big
,
" 0012345670123456701234567012345670"
)
testboth
(
"
%# .34
o"
,
big
,
" 0012345670123456701234567012345670"
)
testboth
(
"
%#+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%#+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%#-+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%#-+.34
o"
,
big
,
"+0012345670123456701234567012345670"
)
testboth
(
"
%#-+37.34
o"
,
big
,
"+0012345670123456701234567012345670 "
)
testboth
(
"
%#-+37.34
o"
,
big
,
"+0012345670123456701234567012345670 "
)
testboth
(
"
%#+37.34
o"
,
big
,
" +0012345670123456701234567012345670"
)
testboth
(
"
%#+37.34
o"
,
big
,
" +0012345670123456701234567012345670"
)
# next one gets one leading zero from precision
# next one gets one leading zero from precision
testboth
(
"
%.33
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%.33
o"
,
big
,
"012345670123456701234567012345670"
)
# base marker shouldn't change that, since "0" is redundant
# base marker shouldn't change that, since "0" is redundant
testboth
(
"
%#.33
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%#.33
o"
,
big
,
"012345670123456701234567012345670"
)
# but reduce precision, and base marker should add a zero
# but reduce precision, and base marker should add a zero
testboth
(
"
%#.32
o"
,
big
,
"012345670123456701234567012345670"
)
testboth
(
"
%#.32
o"
,
big
,
"012345670123456701234567012345670"
)
# one leading zero from precision, and another from "0" flag & width
# one leading zero from precision, and another from "0" flag & width
testboth
(
"
%034.33
o"
,
big
,
"0012345670123456701234567012345670"
)
testboth
(
"
%034.33
o"
,
big
,
"0012345670123456701234567012345670"
)
# base marker shouldn't change that
# base marker shouldn't change that
testboth
(
"
%0#34.33
o"
,
big
,
"0012345670123456701234567012345670"
)
testboth
(
"
%0#34.33
o"
,
big
,
"0012345670123456701234567012345670"
)
testboth
(
"
%
o"
,
float
(
big
),
"123456__________________________"
,
6
)
testboth
(
"
%
o"
,
float
(
big
),
"123456__________________________"
,
6
)
# Some small ints, in both Python int and long flavors).
# Some small ints, in both Python int and long flavors).
testboth
(
"
%
d"
,
42
,
"42"
)
testboth
(
"
%
d"
,
42
,
"42"
)
testboth
(
"
%
d"
,
-
42
,
"-42"
)
testboth
(
"
%
d"
,
-
42
,
"-42"
)
testboth
(
"
%
d"
,
42L
,
"42"
)
testboth
(
"
%
d"
,
42L
,
"42"
)
testboth
(
"
%
d"
,
-
42L
,
"-42"
)
testboth
(
"
%
d"
,
-
42L
,
"-42"
)
testboth
(
"
%
d"
,
42.0
,
"42"
)
testboth
(
"
%
d"
,
42.0
,
"42"
)
testboth
(
"
%#
x"
,
1
,
"0x1"
)
testboth
(
"
%#
x"
,
1
,
"0x1"
)
testboth
(
"
%#
x"
,
1L
,
"0x1"
)
testboth
(
"
%#
x"
,
1L
,
"0x1"
)
testboth
(
"
%#
X"
,
1
,
"0X1"
)
testboth
(
"
%#
X"
,
1
,
"0X1"
)
testboth
(
"
%#
X"
,
1L
,
"0X1"
)
testboth
(
"
%#
X"
,
1L
,
"0X1"
)
testboth
(
"
%#
x"
,
1.0
,
"0x1"
)
testboth
(
"
%#
x"
,
1.0
,
"0x1"
)
testboth
(
"
%#
o"
,
1
,
"01"
)
testboth
(
"
%#
o"
,
1
,
"01"
)
testboth
(
"
%#
o"
,
1L
,
"01"
)
testboth
(
"
%#
o"
,
1L
,
"01"
)
testboth
(
"
%#
o"
,
0
,
"0"
)
testboth
(
"
%#
o"
,
0
,
"0"
)
testboth
(
"
%#
o"
,
0L
,
"0"
)
testboth
(
"
%#
o"
,
0L
,
"0"
)
testboth
(
"
%
o"
,
0
,
"0"
)
testboth
(
"
%
o"
,
0
,
"0"
)
testboth
(
"
%
o"
,
0L
,
"0"
)
testboth
(
"
%
o"
,
0L
,
"0"
)
testboth
(
"
%
d"
,
0
,
"0"
)
testboth
(
"
%
d"
,
0
,
"0"
)
testboth
(
"
%
d"
,
0L
,
"0"
)
testboth
(
"
%
d"
,
0L
,
"0"
)
testboth
(
"
%#
x"
,
0
,
"0x0"
)
testboth
(
"
%#
x"
,
0
,
"0x0"
)
testboth
(
"
%#
x"
,
0L
,
"0x0"
)
testboth
(
"
%#
x"
,
0L
,
"0x0"
)
testboth
(
"
%#
X"
,
0
,
"0X0"
)
testboth
(
"
%#
X"
,
0
,
"0X0"
)
testboth
(
"
%#
X"
,
0L
,
"0X0"
)
testboth
(
"
%#
X"
,
0L
,
"0X0"
)
testboth
(
"
%
x"
,
0x42
,
"42"
)
testboth
(
"
%
x"
,
0x42
,
"42"
)
testboth
(
"
%
x"
,
-
0x42
,
"-42"
)
testboth
(
"
%
x"
,
-
0x42
,
"-42"
)
testboth
(
"
%
x"
,
0x42
L
,
"42"
)
testboth
(
"
%
x"
,
0x42
L
,
"42"
)
testboth
(
"
%
x"
,
-
0x42
L
,
"-42"
)
testboth
(
"
%
x"
,
-
0x42
L
,
"-42"
)
testboth
(
"
%
x"
,
float
(
0x42
),
"42"
)
testboth
(
"
%
x"
,
float
(
0x42
),
"42"
)
testboth
(
"
%
o"
,
042
,
"42"
)
testboth
(
"
%
o"
,
042
,
"42"
)
testboth
(
"
%
o"
,
-
042
,
"-42"
)
testboth
(
"
%
o"
,
-
042
,
"-42"
)
testboth
(
"
%
o"
,
042
L
,
"42"
)
testboth
(
"
%
o"
,
042
L
,
"42"
)
testboth
(
"
%
o"
,
-
042
L
,
"-42"
)
testboth
(
"
%
o"
,
-
042
L
,
"-42"
)
testboth
(
"
%
o"
,
float
(
042
),
"42"
)
testboth
(
"
%
o"
,
float
(
042
),
"42"
)
# Test exception for unknown format characters
# Test exception for unknown format characters
if
verbose
:
if
verbose
:
print
'Testing exceptions'
print
'Testing exceptions'
def
test_exc
(
formatstr
,
args
,
exception
,
excmsg
):
def
test_exc
(
formatstr
,
args
,
exception
,
excmsg
):
try
:
try
:
testformat
(
formatstr
,
args
)
testformat
(
formatstr
,
args
)
except
exception
,
exc
:
except
exception
,
exc
:
...
@@ -247,32 +253,32 @@ def test_exc(formatstr, args, exception, excmsg):
...
@@ -247,32 +253,32 @@ def test_exc(formatstr, args, exception, excmsg):
else
:
else
:
raise
TestFailed
,
'did not get expected exception:
%
s'
%
excmsg
raise
TestFailed
,
'did not get expected exception:
%
s'
%
excmsg
test_exc
(
'abc
%
a'
,
1
,
ValueError
,
test_exc
(
'abc
%
a'
,
1
,
ValueError
,
"unsupported format character 'a' (0x61) at index 5"
)
"unsupported format character 'a' (0x61) at index 5"
)
if
have_unicode
:
if
have_unicode
:
test_exc
(
unicode
(
'abc
%
\u3000
'
,
'raw-unicode-escape'
),
1
,
ValueError
,
test_exc
(
unicode
(
'abc
%
\u3000
'
,
'raw-unicode-escape'
),
1
,
ValueError
,
"unsupported format character '?' (0x3000) at index 5"
)
"unsupported format character '?' (0x3000) at index 5"
)
test_exc
(
'
%
d'
,
'1'
,
TypeError
,
"
%
d format: a number is required, not str"
)
test_exc
(
'
%
d'
,
'1'
,
TypeError
,
"
%
d format: a number is required, not str"
)
test_exc
(
'
%
g'
,
'1'
,
TypeError
,
"float argument required, not str"
)
test_exc
(
'
%
g'
,
'1'
,
TypeError
,
"float argument required, not str"
)
test_exc
(
'no format'
,
'1'
,
TypeError
,
test_exc
(
'no format'
,
'1'
,
TypeError
,
"not all arguments converted during string formatting"
)
"not all arguments converted during string formatting"
)
test_exc
(
'no format'
,
u'1'
,
TypeError
,
test_exc
(
'no format'
,
u'1'
,
TypeError
,
"not all arguments converted during string formatting"
)
"not all arguments converted during string formatting"
)
test_exc
(
u'no format'
,
'1'
,
TypeError
,
test_exc
(
u'no format'
,
'1'
,
TypeError
,
"not all arguments converted during string formatting"
)
"not all arguments converted during string formatting"
)
test_exc
(
u'no format'
,
u'1'
,
TypeError
,
test_exc
(
u'no format'
,
u'1'
,
TypeError
,
"not all arguments converted during string formatting"
)
"not all arguments converted during string formatting"
)
class
Foobar
(
long
):
class
Foobar
(
long
):
def
__oct__
(
self
):
def
__oct__
(
self
):
# Returning a non-string should not blow up.
# Returning a non-string should not blow up.
return
self
+
1
return
self
+
1
test_exc
(
'
%
o'
,
Foobar
(),
TypeError
,
test_exc
(
'
%
o'
,
Foobar
(),
TypeError
,
"expected string or Unicode object, long found"
)
"expected string or Unicode object, long found"
)
if
maxsize
==
2
**
31
-
1
:
if
maxsize
==
2
**
31
-
1
:
# crashes 2.2.1 and earlier:
# crashes 2.2.1 and earlier:
try
:
try
:
"
%*
d"
%
(
maxsize
,
-
127
)
"
%*
d"
%
(
maxsize
,
-
127
)
...
@@ -280,3 +286,10 @@ if maxsize == 2**31-1:
...
@@ -280,3 +286,10 @@ if maxsize == 2**31-1:
pass
pass
else
:
else
:
raise
TestFailed
,
'"
%*
d"
%
(maxsize, -127) should fail'
raise
TestFailed
,
'"
%*
d"
%
(maxsize, -127) should fail'
def
test_main
():
test_support
.
run_unittest
(
FormatTest
)
if
__name__
==
"__main__"
:
unittest
.
main
()
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