mirror of https://github.com/python/cpython.git
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:
parent
94b4fcd806
commit
0e21ed7c09
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue