mirror of
https://github.com/python/cpython.git
synced 2026-06-28 11:50:50 +00:00
[3.13] gh-151693: Make the curses tests portable to other curses implementations (GH-151729) (GH-151730)
Guard the chgat() check (chgat() needs wchgat()) and stop assuming a
subpad shares the parent pad's cells (implementation-defined in X/Open).
(cherry picked from commit 64fab74bd7)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
92bd69674e
commit
cc7043de99
1 changed files with 6 additions and 3 deletions
|
|
@ -380,10 +380,12 @@ def test_pad(self):
|
|||
pad.addstr(0, 0, 'PADTEXT')
|
||||
self.assertEqual(pad.instr(0, 0, 7), b'PADTEXT')
|
||||
|
||||
# subpad() shares the parent pad's character cells.
|
||||
# subpad() creates a pad within the parent pad. Cell sharing with
|
||||
# the parent is implementation-defined, so write to the subpad itself.
|
||||
sub = pad.subpad(3, 5, 0, 0)
|
||||
self.assertEqual(sub.getmaxyx(), (3, 5))
|
||||
self.assertEqual(sub.instr(0, 0, 5), b'PADTE')
|
||||
sub.addstr(1, 0, 'sub')
|
||||
self.assertEqual(sub.instr(1, 0, 3), b'sub')
|
||||
|
||||
# A pad is refreshed onto an explicit screen rectangle; the
|
||||
# 6-argument form is required (and rejected for ordinary windows).
|
||||
|
|
@ -416,7 +418,8 @@ def test_coordinate_errors(self):
|
|||
self.assertRaises(curses.error, win.move, 100, 100)
|
||||
self.assertRaises(curses.error, win.move, -1, -1)
|
||||
self.assertRaises(curses.error, win.addch, 100, 100, ord('x'))
|
||||
self.assertRaises(curses.error, win.chgat, 100, 0, curses.A_BOLD)
|
||||
if hasattr(win, 'chgat'): # chgat() requires wchgat()
|
||||
self.assertRaises(curses.error, win.chgat, 100, 0, curses.A_BOLD)
|
||||
|
||||
def test_argument_errors(self):
|
||||
win = curses.newwin(5, 10, 0, 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue