@@ -323,11 +323,20 @@ def bad_colors(self):
323323 def bad_pairs (self ):
324324 return (- 2 ** 31 - 1 , 2 ** 31 , - 2 ** 63 - 1 , 2 ** 63 , 2 ** 64 )
325325
326+ def test_start_color (self ):
327+ if not curses .has_colors ():
328+ self .skipTest ('requires colors support' )
329+ curses .start_color ()
330+ if verbose :
331+ print (f'COLORS = { curses .COLORS } ' , file = sys .stderr )
332+ print (f'COLOR_PAIRS = { curses .COLOR_PAIRS } ' , file = sys .stderr )
333+
326334 @requires_colors
327335 def test_color_content (self ):
328336 self .assertEqual (curses .color_content (curses .COLOR_BLACK ), (0 , 0 , 0 ))
329337 curses .color_content (0 )
330- curses .color_content (min (curses .COLORS - 1 , SHORT_MAX ))
338+ maxcolor = min (curses .COLORS - 1 , SHORT_MAX )
339+ curses .color_content (maxcolor )
331340
332341 for color in self .bad_colors ():
333342 self .assertRaises (OverflowError , curses .color_content , color )
@@ -368,13 +377,18 @@ def test_init_color(self):
368377 self .assertRaises (curses .error , curses .init_color , 0 , 0 , comp , 0 )
369378 self .assertRaises (curses .error , curses .init_color , 0 , 0 , 0 , comp )
370379
380+ def get_pair_limit (self ):
381+ return min (curses .COLOR_PAIRS , SHORT_MAX )
382+
371383 @requires_colors
372384 def test_pair_content (self ):
373385 if not hasattr (curses , 'use_default_colors' ):
374386 self .assertEqual (curses .pair_content (0 ),
375387 (curses .COLOR_WHITE , curses .COLOR_BLACK ))
376388 curses .pair_content (0 )
377- curses .pair_content (min (curses .COLOR_PAIRS - 1 , SHORT_MAX ))
389+ maxpair = self .get_pair_limit () - 1
390+ if maxpair > 0 :
391+ curses .pair_content (maxpair )
378392
379393 for pair in self .bad_pairs ():
380394 self .assertRaises (OverflowError , curses .pair_content , pair )
@@ -389,11 +403,14 @@ def test_init_pair(self):
389403 curses .init_pair (1 , 0 , 0 )
390404 self .assertEqual (curses .pair_content (1 ), (0 , 0 ))
391405 maxcolor = min (curses .COLORS - 1 , SHORT_MAX )
392- curses .init_pair (1 , maxcolor , maxcolor )
393- self .assertEqual (curses .pair_content (1 ), (maxcolor , maxcolor ))
394- maxpair = min (curses .COLOR_PAIRS - 1 , SHORT_MAX )
395- curses .init_pair (maxpair , 2 , 3 )
396- self .assertEqual (curses .pair_content (maxpair ), (2 , 3 ))
406+ curses .init_pair (1 , maxcolor , 0 )
407+ self .assertEqual (curses .pair_content (1 ), (maxcolor , 0 ))
408+ curses .init_pair (1 , 0 , maxcolor )
409+ self .assertEqual (curses .pair_content (1 ), (0 , maxcolor ))
410+ maxpair = self .get_pair_limit () - 1
411+ if maxpair > 1 :
412+ curses .init_pair (maxpair , 0 , 0 )
413+ self .assertEqual (curses .pair_content (maxpair ), (0 , 0 ))
397414
398415 for pair in self .bad_pairs ():
399416 self .assertRaises (OverflowError , curses .init_pair , pair , 0 , 0 )
@@ -591,6 +608,8 @@ def test_update_lines_cols(self):
591608 @requires_curses_func ('ncurses_version' )
592609 def test_ncurses_version (self ):
593610 v = curses .ncurses_version
611+ if verbose :
612+ print (f'ncurses_version = { curses .ncurses_version } ' , flush = True )
594613 self .assertIsInstance (v [:], tuple )
595614 self .assertEqual (len (v ), 3 )
596615 self .assertIsInstance (v [0 ], int )
0 commit comments