2 Test cases for the repr module
7 from test_support
import run_unittest
8 from repr import repr as r
# Don't shadow builtin repr
11 def nestedTuple(nesting
):
13 for i
in range(nesting
):
17 class ReprTests(unittest
.TestCase
):
19 def test_string(self
):
20 eq
= self
.assertEquals
22 eq(r("abcdefghijklmnop"),"'abcdefghijklmnop'")
25 expected
= `s`
[:13] + "..." + `s`
[-14:]
28 eq(r("\"'"), repr("\"'"))
30 expected
= `s`
[:13] + "..." + `s`
[-14:]
33 def test_container(self
):
34 eq
= self
.assertEquals
35 # Tuples give up after 6 elements
38 eq(r((1, 2, 3)), "(1, 2, 3)")
39 eq(r((1, 2, 3, 4, 5, 6)), "(1, 2, 3, 4, 5, 6)")
40 eq(r((1, 2, 3, 4, 5, 6, 7)), "(1, 2, 3, 4, 5, 6, ...)")
42 # Lists give up after 6 as well
45 eq(r([1, 2, 3]), "[1, 2, 3]")
46 eq(r([1, 2, 3, 4, 5, 6]), "[1, 2, 3, 4, 5, 6]")
47 eq(r([1, 2, 3, 4, 5, 6, 7]), "[1, 2, 3, 4, 5, 6, ...]")
49 # Dictionaries give up after 4.
51 d
= {'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}
52 eq(r(d
), "{'alice': 1, 'bob': 2, 'charles': 3, 'dave': 4}")
54 eq(r(d
), "{'alice': 1, 'arthur': 1, 'bob': 2, 'charles': 3, ...}")
56 def test_numbers(self
):
57 eq
= self
.assertEquals
59 eq(r(123L), repr(123L))
60 eq(r(1.0/3), repr(1.0/3))
63 expected
= `n`
[:18] + "..." + `n`
[-19:]
66 def test_instance(self
):
67 eq
= self
.assertEquals
68 i1
= ClassWithRepr("a")
71 i2
= ClassWithRepr("x"*1000)
72 expected
= `i2`
[:13] + "..." + `i2`
[-14:]
75 i3
= ClassWithFailingRepr()
76 eq(r(i3
), ("<ClassWithFailingRepr instance at %x>"%id(i3
)))
78 def test_nesting(self
):
79 eq
= self
.assertEquals
80 # everything is meant to give up after 6 levels.
81 eq(r([[[[[[[]]]]]]]), "[[[[[[[]]]]]]]")
82 eq(r([[[[[[[[]]]]]]]]), "[[[[[[[...]]]]]]]")
84 eq(r(nestedTuple(6)), "(((((((),),),),),),)")
85 eq(r(nestedTuple(7)), "(((((((...),),),),),),)")
87 eq(r({ nestedTuple(5) : nestedTuple(5) }),
88 "{((((((),),),),),): ((((((),),),),),)}")
89 eq(r({ nestedTuple(6) : nestedTuple(6) }),
90 "{((((((...),),),),),): ((((((...),),),),),)}")
92 eq(r([[[[[[{}]]]]]]), "[[[[[[{}]]]]]]")
93 eq(r([[[[[[[{}]]]]]]]), "[[[[[[[...]]]]]]]")
97 def __init__(self
, s
):
100 return "ClassWithLongRepr(%r)" % self
.s
103 class ClassWithFailingRepr
:
105 raise Exception("This should be caught by Repr.repr_instance")
108 run_unittest(ReprTests
)