|
1 |
| -import unittest |
2 | 1 | from string.templatelib import Template, Interpolation
|
3 | 2 |
|
4 |
| -from test.test_string._support import f |
| 3 | +from test.test_string._support import TStringTestCase, f |
5 | 4 |
|
6 | 5 |
|
7 |
| -class TestTemplate(unittest.TestCase): |
| 6 | +class TestTemplate(TStringTestCase): |
8 | 7 |
|
9 | 8 | def test_basic_creation(self):
|
10 | 9 | # Simple t-string creation
|
11 |
| - t = t"Hello, world" |
12 |
| - self.assertTrue(isinstance(t, Template)) |
13 |
| - self.assertEqual(t.strings, ("Hello, world",)) |
14 |
| - self.assertEqual(len(t.interpolations), 0) |
15 |
| - self.assertEqual(f(t), "Hello, world") |
| 10 | + t = t'Hello, world' |
| 11 | + self.assertIsInstance(t, Template) |
| 12 | + self.assertTStringEqual(t, ('Hello, world',), ()) |
| 13 | + self.assertEqual(f(t), 'Hello, world') |
16 | 14 |
|
17 | 15 | # Empty t-string
|
18 |
| - t = t"" |
19 |
| - self.assertEqual(t.strings, ("",)) |
20 |
| - self.assertEqual(len(t.interpolations), 0) |
21 |
| - self.assertEqual(f(t), "") |
| 16 | + t = t'' |
| 17 | + self.assertTStringEqual(t, ('',), ()) |
| 18 | + self.assertEqual(f(t), '') |
22 | 19 |
|
23 | 20 | # Multi-line t-string
|
24 | 21 | t = t"""Hello,
|
25 | 22 | world"""
|
26 |
| - self.assertEqual(t.strings, ("Hello,\nworld",)) |
| 23 | + self.assertEqual(t.strings, ('Hello,\nworld',)) |
27 | 24 | self.assertEqual(len(t.interpolations), 0)
|
28 |
| - self.assertEqual(f(t), "Hello,\nworld") |
| 25 | + self.assertEqual(f(t), 'Hello,\nworld') |
29 | 26 |
|
30 | 27 | def test_creation_interleaving(self):
|
31 | 28 | # Should add strings on either side
|
32 |
| - t = Template(Interpolation("Maria", "name", None, "")) |
33 |
| - self.assertEqual(t.strings, ("", "")) |
34 |
| - self.assertEqual(t.interpolations[0].value, "Maria") |
35 |
| - self.assertEqual(t.interpolations[0].expression, "name") |
36 |
| - self.assertEqual(t.interpolations[0].conversion, None) |
37 |
| - self.assertEqual(t.interpolations[0].format_spec, "") |
38 |
| - self.assertEqual(f(t), "Maria") |
| 29 | + t = Template(Interpolation('Maria', 'name', None, '')) |
| 30 | + self.assertTStringEqual(t, ('', ''), [('Maria', 'name')]) |
| 31 | + self.assertEqual(f(t), 'Maria') |
39 | 32 |
|
40 | 33 | # Should prepend empty string
|
41 |
| - t = Template(Interpolation("Maria", "name", None, ""), " is my name") |
42 |
| - self.assertEqual(t.strings, ("", " is my name")) |
43 |
| - self.assertEqual(t.interpolations[0].value, "Maria") |
44 |
| - self.assertEqual(t.interpolations[0].expression, "name") |
45 |
| - self.assertEqual(t.interpolations[0].conversion, None) |
46 |
| - self.assertEqual(t.interpolations[0].format_spec, "") |
47 |
| - self.assertEqual(f(t), "Maria is my name") |
| 34 | + t = Template(Interpolation('Maria', 'name', None, ''), ' is my name') |
| 35 | + self.assertTStringEqual(t, ('', ' is my name'), [('Maria', 'name')]) |
| 36 | + self.assertEqual(f(t), 'Maria is my name') |
48 | 37 |
|
49 | 38 | # Should append empty string
|
50 |
| - t = Template("Hello, ", Interpolation("Maria", "name", None, "")) |
51 |
| - self.assertEqual(t.strings, ("Hello, ", "")) |
52 |
| - self.assertEqual(t.interpolations[0].value, "Maria") |
53 |
| - self.assertEqual(t.interpolations[0].expression, "name") |
54 |
| - self.assertEqual(t.interpolations[0].conversion, None) |
55 |
| - self.assertEqual(t.interpolations[0].format_spec, "") |
56 |
| - self.assertEqual(f(t), "Hello, Maria") |
| 39 | + t = Template('Hello, ', Interpolation('Maria', 'name', None, '')) |
| 40 | + self.assertTStringEqual(t, ('Hello, ', ''), [('Maria', 'name')]) |
| 41 | + self.assertEqual(f(t), 'Hello, Maria') |
57 | 42 |
|
58 | 43 | # Should concatenate strings
|
59 |
| - t = Template("Hello", ", ", Interpolation("Maria", "name", None, ""), "!") |
60 |
| - self.assertEqual(t.strings, ("Hello, ", "!")) |
61 |
| - self.assertEqual(t.interpolations[0].value, "Maria") |
62 |
| - self.assertEqual(t.interpolations[0].expression, "name") |
63 |
| - self.assertEqual(t.interpolations[0].conversion, None) |
64 |
| - self.assertEqual(t.interpolations[0].format_spec, "") |
65 |
| - self.assertEqual(f(t), "Hello, Maria!") |
| 44 | + t = Template('Hello', ', ', Interpolation('Maria', 'name', None, ''), |
| 45 | + '!') |
| 46 | + self.assertTStringEqual(t, ('Hello, ', '!'), [('Maria', 'name')]) |
| 47 | + self.assertEqual(f(t), 'Hello, Maria!') |
66 | 48 |
|
67 | 49 | # Should add strings on either side and in between
|
68 |
| - t = Template(Interpolation("Maria", "name", None, ""), Interpolation("Python", "language", None, "")) |
69 |
| - self.assertEqual(t.strings, ("", "", "")) |
70 |
| - self.assertEqual(t.interpolations[0].value, "Maria") |
71 |
| - self.assertEqual(t.interpolations[0].expression, "name") |
72 |
| - self.assertEqual(t.interpolations[0].conversion, None) |
73 |
| - self.assertEqual(t.interpolations[0].format_spec, "") |
74 |
| - self.assertEqual(t.interpolations[1].value, "Python") |
75 |
| - self.assertEqual(t.interpolations[1].expression, "language") |
76 |
| - self.assertEqual(t.interpolations[1].conversion, None) |
77 |
| - self.assertEqual(t.interpolations[1].format_spec, "") |
78 |
| - self.assertEqual(f(t), "MariaPython") |
| 50 | + t = Template(Interpolation('Maria', 'name', None, ''), |
| 51 | + Interpolation('Python', 'language', None, '')) |
| 52 | + self.assertTStringEqual( |
| 53 | + t, ('', '', ''), [('Maria', 'name'), ('Python', 'language')] |
| 54 | + ) |
| 55 | + self.assertEqual(f(t), 'MariaPython') |
0 commit comments