[3.13] gh-91221: fix test_curses.test_use_default_colors for xterm-256color (GH-132990) (#132992)

gh-91221: fix `test_curses.test_use_default_colors` for xterm-256color (GH-132990)

Terminals with `xterm-256color` Xterm support may use 15 (bright white) as their default foreground color.
(cherry picked from commit 7f02ded29f)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2025-04-26 13:02:17 +02:00 committed by GitHub
parent 08772229c7
commit 41e19a78b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -51,6 +51,12 @@ def wrapped(self, *args, **kwargs):
term = os.environ.get('TERM')
SHORT_MAX = 0x7fff
DEFAULT_PAIR_CONTENTS = [
(curses.COLOR_WHITE, curses.COLOR_BLACK),
(0, 0),
(-1, -1),
(15, 0), # for xterm-256color (15 is for BRIGHT WHITE)
]
# If newterm was supported we could use it instead of initscr and not exit
@unittest.skipIf(not term or term == 'unknown',
@ -751,7 +757,6 @@ def test_output_options(self):
curses.nl(False)
curses.nl()
def test_input_options(self):
stdscr = self.stdscr
@ -944,8 +949,7 @@ def get_pair_limit(self):
@requires_colors
def test_pair_content(self):
if not hasattr(curses, 'use_default_colors'):
self.assertEqual(curses.pair_content(0),
(curses.COLOR_WHITE, curses.COLOR_BLACK))
self.assertIn(curses.pair_content(0), DEFAULT_PAIR_CONTENTS)
curses.pair_content(0)
maxpair = self.get_pair_limit() - 1
if maxpair > 0:
@ -996,7 +1000,7 @@ def test_use_default_colors(self):
except curses.error:
self.skipTest('cannot change color (use_default_colors() failed)')
self.assertEqual(curses.pair_content(0), (-1, -1))
self.assertIn(old, [(curses.COLOR_WHITE, curses.COLOR_BLACK), (-1, -1), (0, 0)])
self.assertIn(old, DEFAULT_PAIR_CONTENTS)
def test_keyname(self):
# TODO: key_name()