Skip to content

Commit 700fb9e

Browse files
Avoid excessively long commandline arguments.
1 parent 560540c commit 700fb9e

File tree

1 file changed

+20
-25
lines changed

1 file changed

+20
-25
lines changed

Lib/test/test_embed.py

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,7 @@ def test_datetime_reset_strptime(self):
419419
@unittest.skip('inheritance across re-init is currently broken; see gh-117482')
420420
def test_static_types_inherited_slots(self):
421421
script = textwrap.dedent("""
422-
import json
423-
import sys
422+
import test.support
424423
425424
results = {}
426425
def add(cls, slot, own):
@@ -429,41 +428,37 @@ def add(cls, slot, own):
429428
subresults = results[cls.__name__]
430429
except KeyError:
431430
subresults = results[cls.__name__] = {}
432-
subresults[slot] = repr(value)
431+
subresults[slot] = [repr(value), own]
432+
433+
for cls in test.support.iter_builtin_types():
434+
for slot, own in test.support.iter_slot_wrappers(cls):
435+
add(cls, slot, own)
436+
""")
433437

434-
{body}
438+
ns = {}
439+
exec(script, ns, ns)
440+
all_expected = ns['results']
441+
del ns
435442

443+
script += textwrap.dedent("""
444+
import json
445+
import sys
436446
text = json.dumps(results)
437447
print(text, file=sys.stderr)
438448
""")
439-
body = []
440-
for cls in support.iter_builtin_types():
441-
body.append('')
442-
body.append(f'cls = {cls.__name__}')
443-
for slot, own in support.iter_slot_wrappers(cls):
444-
body.append(f'add(cls, {slot!r}, {own})')
445-
body.pop(0)
446-
script = script.replace('{body}', os.linesep.join(body))
447-
448-
with contextlib.redirect_stderr(io.StringIO()) as stderr:
449-
ns = {}
450-
exec(script, ns, ns)
451-
expected = json.loads(stderr.getvalue())
452-
453449
out, err = self.run_embedded_interpreter(
454450
"test_repeated_init_exec", script, script)
455451
results = err.split('--- Loop #')[1:]
456452
results = [res.rpartition(' ---\n')[-1] for res in results]
457453

458454
self.maxDiff = None
459455
for i, text in enumerate(results, start=1):
460-
failed = True
461-
with self.subTest(loop=i):
462-
result = json.loads(text)
463-
self.assertEqual(result, expected)
464-
failed = False
465-
if failed:
466-
break
456+
result = json.loads(text)
457+
for classname, expected in all_expected.items():
458+
with self.subTest(loop=i, cls=classname):
459+
slots = result.pop(classname)
460+
self.assertEqual(slots, expected)
461+
self.assertEqual(result, {})
467462
self.assertEqual(out, '')
468463

469464

0 commit comments

Comments
 (0)