Skip to content

Commit 6bfc888

Browse files
committed
Add test for interleaving
1 parent 8f8a414 commit 6bfc888

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

Lib/test/test_tstring.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,56 @@ def test_template_basic_creation(self):
5555
self.assertEqual(len(t.interpolations), 0)
5656
self.assertEqual(f(t), "Hello,\nworld")
5757

58+
def test_template_creation_interleaving(self):
59+
# Should add strings on either side
60+
t = Template(Interpolation("Maria", "name", None, ""))
61+
self.assertEqual(t.strings, ("", ""))
62+
self.assertEqual(t.interpolations[0].value, "Maria")
63+
self.assertEqual(t.interpolations[0].expression, "name")
64+
self.assertEqual(t.interpolations[0].conversion, None)
65+
self.assertEqual(t.interpolations[0].format_spec, "")
66+
self.assertEqual(f(t), "Maria")
67+
68+
# Should prepend empty string
69+
t = Template(Interpolation("Maria", "name", None, ""), " is my name")
70+
self.assertEqual(t.strings, ("", " is my name"))
71+
self.assertEqual(t.interpolations[0].value, "Maria")
72+
self.assertEqual(t.interpolations[0].expression, "name")
73+
self.assertEqual(t.interpolations[0].conversion, None)
74+
self.assertEqual(t.interpolations[0].format_spec, "")
75+
self.assertEqual(f(t), "Maria is my name")
76+
77+
# Should append empty string
78+
t = Template("Hello, ", Interpolation("Maria", "name", None, ""))
79+
self.assertEqual(t.strings, ("Hello, ", ""))
80+
self.assertEqual(t.interpolations[0].value, "Maria")
81+
self.assertEqual(t.interpolations[0].expression, "name")
82+
self.assertEqual(t.interpolations[0].conversion, None)
83+
self.assertEqual(t.interpolations[0].format_spec, "")
84+
self.assertEqual(f(t), "Hello, Maria")
85+
86+
# Should concatenate strings
87+
t = Template("Hello", ", ", Interpolation("Maria", "name", None, ""), "!")
88+
self.assertEqual(t.strings, ("Hello, ", "!"))
89+
self.assertEqual(t.interpolations[0].value, "Maria")
90+
self.assertEqual(t.interpolations[0].expression, "name")
91+
self.assertEqual(t.interpolations[0].conversion, None)
92+
self.assertEqual(t.interpolations[0].format_spec, "")
93+
self.assertEqual(f(t), "Hello, Maria!")
94+
95+
# Should add strings on either side and in between
96+
t = Template(Interpolation("Maria", "name", None, ""), Interpolation("Python", "language", None, ""))
97+
self.assertEqual(t.strings, ("", "", ""))
98+
self.assertEqual(t.interpolations[0].value, "Maria")
99+
self.assertEqual(t.interpolations[0].expression, "name")
100+
self.assertEqual(t.interpolations[0].conversion, None)
101+
self.assertEqual(t.interpolations[0].format_spec, "")
102+
self.assertEqual(t.interpolations[1].value, "Python")
103+
self.assertEqual(t.interpolations[1].expression, "language")
104+
self.assertEqual(t.interpolations[1].conversion, None)
105+
self.assertEqual(t.interpolations[1].format_spec, "")
106+
self.assertEqual(f(t), "MariaPython")
107+
58108
def test_string_representation(self):
59109
# Test __repr__
60110
t = t"Hello"

0 commit comments

Comments
 (0)