diff options
author | sobolevn <mail@sobolevn.me> | 2025-04-30 22:38:25 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-30 22:38:25 +0300 |
commit | 0e21ed7c09c687d62d6bf054022e66bccd1fa2bc (patch) | |
tree | 227cb254d2218bb5b970b95a654950afb2214baa | |
parent | 94b4fcd806e7b692955173d309ea3b70a193ad96 (diff) | |
download | cpython-0e21ed7c09c687d62d6bf054022e66bccd1fa2bc.tar.gz cpython-0e21ed7c09c687d62d6bf054022e66bccd1fa2bc.zip |
gh-133213: Add tests for `string.templatelib.TemplateIter` (#133215)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
-rw-r--r-- | Lib/test/test_string/test_templatelib.py | 24 |
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() |