aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_string/test_templatelib.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_string/test_templatelib.py b/Lib/test/test_string/test_templatelib.py
index 5221ca673b2..5b9490c2be6 100644
--- a/Lib/test/test_string/test_templatelib.py
+++ b/Lib/test/test_string/test_templatelib.py
@@ -1,5 +1,6 @@
import pickle
import unittest
+from collections.abc import Iterator, Iterable
from string.templatelib import Template, Interpolation
from test.test_string._support import TStringBaseCase, fstring
@@ -125,5 +126,28 @@ world"""
self.assertEqual(unpickled.format_spec, interpolation.format_spec)
+class TemplateIterTests(unittest.TestCase):
+ def test_abc(self):
+ self.assertIsInstance(iter(t''), Iterable)
+ self.assertIsInstance(iter(t''), Iterator)
+
+ def test_final(self):
+ TemplateIter = type(iter(t''))
+ with self.assertRaisesRegex(TypeError, 'is not an acceptable base type'):
+ class Sub(TemplateIter): ...
+
+ def test_iter(self):
+ x = 1
+ res = list(iter(t'abc {x} yz'))
+
+ self.assertEqual(res[0], 'abc ')
+ self.assertIsInstance(res[1], Interpolation)
+ self.assertEqual(res[1].value, 1)
+ self.assertEqual(res[1].expression, 'x')
+ self.assertEqual(res[1].conversion, None)
+ self.assertEqual(res[1].format_spec, '')
+ self.assertEqual(res[2], ' yz')
+
+
if __name__ == '__main__':
unittest.main()