gh-133213: Add tests for `string.templatelib.TemplateIter` (#133215)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
sobolevn 2025-04-30 22:38:25 +03:00 committed by GitHub
parent 94b4fcd806
commit 0e21ed7c09
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 24 additions and 0 deletions

View File

@ -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 @@ def test_pickle_interpolation(self):
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()