home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / test_curses.py < prev    next >
Text File  |  2003-12-30  |  6KB  |  211 lines

  1. #
  2. # Test script for the curses module
  3. #
  4. # This script doesn't actually display anything very coherent. but it
  5. # does call every method and function.
  6. #
  7. # Functions not tested: {def,reset}_{shell,prog}_mode, getch(), getstr(),
  8. # getmouse(), ungetmouse(), init_color()
  9. #
  10.  
  11. import curses, sys, tempfile
  12.  
  13. # Optionally test curses module.  This currently requires that the
  14. # 'curses' resource be given on the regrtest command line using the -u
  15. # option.  If not available, nothing after this line will be executed.
  16.  
  17. from test import test_support
  18. test_support.requires('curses')
  19.  
  20. def window_funcs(stdscr):
  21.     "Test the methods of windows"
  22.     win = curses.newwin(10,10)
  23.     win = curses.newwin(5,5, 5,5)
  24.     win2 = curses.newwin(15,15, 5,5)
  25.  
  26.     for meth in [stdscr.addch, stdscr.addstr]:
  27.         for args in [('a'), ('a', curses.A_BOLD),
  28.                      (4,4, 'a'), (5,5, 'a', curses.A_BOLD)]:
  29.             meth(*args)
  30.  
  31.     for meth in [stdscr.box, stdscr.clear, stdscr.clrtobot,
  32.                  stdscr.clrtoeol, stdscr.cursyncup, stdscr.delch,
  33.                  stdscr.deleteln, stdscr.erase, stdscr.getbegyx,
  34.                  stdscr.getbkgd, stdscr.getkey, stdscr.getmaxyx,
  35.                  stdscr.getparyx, stdscr.getyx, stdscr.inch,
  36.                  stdscr.insertln, stdscr.instr, stdscr.is_wintouched,
  37.                  win.noutrefresh, stdscr.redrawwin, stdscr.refresh,
  38.                  stdscr.standout, stdscr.standend, stdscr.syncdown,
  39.                  stdscr.syncup, stdscr.touchwin, stdscr.untouchwin]:
  40.         meth()
  41.  
  42.     stdscr.addnstr('1234', 3)
  43.     stdscr.addnstr('1234', 3, curses.A_BOLD)
  44.     stdscr.addnstr(4,4, '1234', 3)
  45.     stdscr.addnstr(5,5, '1234', 3, curses.A_BOLD)
  46.  
  47.     stdscr.attron(curses.A_BOLD)
  48.     stdscr.attroff(curses.A_BOLD)
  49.     stdscr.attrset(curses.A_BOLD)
  50.     stdscr.bkgd(' ')
  51.     stdscr.bkgd(' ', curses.A_REVERSE)
  52.     stdscr.bkgdset(' ')
  53.     stdscr.bkgdset(' ', curses.A_REVERSE)
  54.  
  55.     win.border(65, 66, 67, 68,
  56.                69, 70, 71, 72)
  57.     win.border('|', '!', '-', '_',
  58.                '+', '\\', '#', '/')
  59.     try:
  60.         win.border(65, 66, 67, 68,
  61.                    69, [], 71, 72)
  62.     except TypeError:
  63.         pass
  64.     else:
  65.         raise RuntimeError, "Expected win.border() to raise TypeError"
  66.  
  67.     stdscr.clearok(1)
  68.  
  69.     win4 = stdscr.derwin(2,2)
  70.     win4 = stdscr.derwin(1,1, 5,5)
  71.     win4.mvderwin(9,9)
  72.  
  73.     stdscr.echochar('a')
  74.     stdscr.echochar('a', curses.A_BOLD)
  75.     stdscr.hline('-', 5)
  76.     stdscr.hline('-', 5, curses.A_BOLD)
  77.     stdscr.hline(1,1,'-', 5)
  78.     stdscr.hline(1,1,'-', 5, curses.A_BOLD)
  79.  
  80.     stdscr.idcok(1)
  81.     stdscr.idlok(1)
  82.     stdscr.immedok(1)
  83.     stdscr.insch('c')
  84.     stdscr.insdelln(1)
  85.     stdscr.insnstr('abc', 3)
  86.     stdscr.insnstr('abc', 3, curses.A_BOLD)
  87.     stdscr.insnstr(5, 5, 'abc', 3)
  88.     stdscr.insnstr(5, 5, 'abc', 3, curses.A_BOLD)
  89.  
  90.     stdscr.insstr('def')
  91.     stdscr.insstr('def', curses.A_BOLD)
  92.     stdscr.insstr(5, 5, 'def')
  93.     stdscr.insstr(5, 5, 'def', curses.A_BOLD)
  94.     stdscr.is_linetouched(0)
  95.     stdscr.keypad(1)
  96.     stdscr.leaveok(1)
  97.     stdscr.move(3,3)
  98.     win.mvwin(2,2)
  99.     stdscr.nodelay(1)
  100.     stdscr.notimeout(1)
  101.     win2.overlay(win)
  102.     win2.overwrite(win)
  103.     stdscr.redrawln(1,2)
  104.  
  105.     stdscr.scrollok(1)
  106.     stdscr.scroll()
  107.     stdscr.scroll(2)
  108.     stdscr.scroll(-3)
  109.  
  110.     stdscr.setscrreg(10,15)
  111.     win3 = stdscr.subwin(10,10)
  112.     win3 = stdscr.subwin(10,10, 5,5)
  113.     stdscr.syncok(1)
  114.     stdscr.timeout(5)
  115.     stdscr.touchline(5,5)
  116.     stdscr.touchline(5,5,0)
  117.     stdscr.vline('a', 3)
  118.     stdscr.vline('a', 3, curses.A_STANDOUT)
  119.     stdscr.vline(1,1, 'a', 3)
  120.     stdscr.vline(1,1, 'a', 3, curses.A_STANDOUT)
  121.  
  122.     if hasattr(curses, 'resize'):
  123.         stdscr.resize()
  124.     if hasattr(curses, 'enclose'):
  125.         stdscr.enclose()
  126.  
  127.  
  128. def module_funcs(stdscr):
  129.     "Test module-level functions"
  130.  
  131.     for func in [curses.baudrate, curses.beep, curses.can_change_color,
  132.                  curses.cbreak, curses.def_prog_mode, curses.doupdate,
  133.                  curses.filter, curses.flash, curses.flushinp,
  134.                  curses.has_colors, curses.has_ic, curses.has_il,
  135.                  curses.isendwin, curses.killchar, curses.longname,
  136.                  curses.nocbreak, curses.noecho, curses.nonl,
  137.                  curses.noqiflush, curses.noraw,
  138.                  curses.reset_prog_mode, curses.termattrs,
  139.                  curses.termname, curses.erasechar, curses.getsyx]:
  140.         func()
  141.  
  142.     # Functions that actually need arguments
  143.     curses.curs_set(1)
  144.     curses.delay_output(1)
  145.     curses.echo() ; curses.echo(1)
  146.  
  147.     f = tempfile.TemporaryFile()
  148.     stdscr.putwin(f)
  149.     f.seek(0)
  150.     curses.getwin(f)
  151.     f.close()
  152.  
  153.     curses.halfdelay(1)
  154.     curses.intrflush(1)
  155.     curses.meta(1)
  156.     curses.napms(100)
  157.     curses.newpad(50,50)
  158.     win = curses.newwin(5,5)
  159.     win = curses.newwin(5,5, 1,1)
  160.     curses.nl() ; curses.nl(1)
  161.     curses.putp('abc')
  162.     curses.qiflush()
  163.     curses.raw() ; curses.raw(1)
  164.     curses.setsyx(5,5)
  165.     curses.setupterm(fd=sys.__stdout__.fileno())
  166.     curses.tigetflag('hc')
  167.     curses.tigetnum('co')
  168.     curses.tigetstr('cr')
  169.     curses.tparm('cr')
  170.     curses.typeahead(sys.__stdin__.fileno())
  171.     curses.unctrl('a')
  172.     curses.ungetch('a')
  173.     curses.use_env(1)
  174.  
  175.     # Functions only available on a few platforms
  176.     if curses.has_colors():
  177.         curses.start_color()
  178.         curses.init_pair(2, 1,1)
  179.         curses.color_content(1)
  180.         curses.color_pair(2)
  181.         curses.pair_content(curses.COLOR_PAIRS)
  182.         curses.pair_number(0)
  183.  
  184.     if hasattr(curses, 'keyname'):
  185.         curses.keyname(13)
  186.  
  187.     if hasattr(curses, 'has_key'):
  188.         curses.has_key(13)
  189.  
  190.     if hasattr(curses, 'getmouse'):
  191.         curses.mousemask(curses.BUTTON1_PRESSED)
  192.         curses.mouseinterval(10)
  193.  
  194.  
  195. def main(stdscr):
  196.     curses.savetty()
  197.     try:
  198.         module_funcs(stdscr)
  199.         window_funcs(stdscr)
  200.     finally:
  201.         curses.resetty()
  202.  
  203. if __name__ == '__main__':
  204.     curses.wrapper(main)
  205. else:
  206.     try:
  207.         stdscr = curses.initscr()
  208.         main(stdscr)
  209.     finally:
  210.         curses.endwin()
  211.