python类ungetch()的实例源码

curses_util.py 文件源码 项目:ci_edit 作者: google 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def hackCursesFixes():
  if sys.platform == 'darwin':
    def windowChangedHandler(signum, frame):
      curses.ungetch(curses.KEY_RESIZE)
    signal.signal(signal.SIGWINCH, windowChangedHandler)
  def wakeGetch(signum, frame):
    curses.ungetch(0)
  signal.signal(signal.SIGUSR1, wakeGetch)
controller.py 文件源码 项目:ci_edit 作者: google 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def changeToFindPrior(self):
    curses.ungetch(self.savedCh)
    self.host.changeFocusTo(self.host.interactiveFind)
controller.py 文件源码 项目:ci_edit 作者: google 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def saveEventChangeToHostWindow(self, *args):
    curses.ungetch(self.savedCh)
    self.host.changeFocusTo(self.host)
test_main.py 文件源码 项目:aws-ec2rescue-linux 作者: awslabs 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def test_main_menu_config(self, open_mock):
        """Test that the menu configurator functions."""
        self.ec2rl.options.global_args["abc"] = "def"
        curses.initscr()
        # main menu -> exit
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_RIGHT)
        # Modules menu -> main menu
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_RIGHT)
        # atop -> Modules menu
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_RIGHT)
        # atop -> period = 1
        curses.ungetch("\n")
        curses.ungetch("1")
        curses.ungetch("\n")
        # Modules menu -> atop
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        # main menu -> Modules menu
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_DOWN)
        # Global menu -> main menu
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_RIGHT)
        # Global -> concurrency -> 2
        curses.ungetch("\n")
        curses.ungetch("2")
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        # Global menu -> only-classes menu
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_RIGHT)
        # unselect "collect"
        curses.ungetch(" ")
        curses.ungetch("\n")
        # main menu -> Global menu
        curses.ungetch("\n")
        with contextlib.redirect_stdout(self.output):
            self.assertTrue(self.ec2rl.menu_config())
        self.assertTrue(re.match(r"^\n----------\[Configuration File\]----------\n\nConfiguration file saved:\n"
                                 r"/var/tmp/ec2rl/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}_[0-9]{2}_[0-9]{2}.[0-9]{6}"
                                 r"/configuration.cfg\n$",
                                 self.output.getvalue()))
        self.assertEqual(len(self.output.getvalue()), 129)
        self.assertTrue(open_mock.called)
        self.assertEqual(self.ec2rl.options.global_args["abc"], "def")
        self.assertEqual(self.ec2rl.options.global_args["concurrency"], "2")
        self.assertEqual(self.ec2rl.options.global_args["onlyclasses"], "diagnose,gather")
        self.assertEqual(self.ec2rl.options.per_module_args["atop"]["period"], "1")
test_main.py 文件源码 项目:aws-ec2rescue-linux 作者: awslabs 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_main_menu_config_run(self,
                                  prediag_mock,
                                  main_log_handler_mock,
                                  debug_log_handler_mock,
                                  mkdir_mock,
                                  copyfile_mock,
                                  chdir_mock,
                                  write_config_mock,
                                  logging_fh_mock):
        """Test running ec2rl from the menu."""
        # Setup the instance of Main
        responses.add(responses.GET, "http://169.254.169.254/latest/meta-data/instance-id", body="i-deadbeef",
                      status=200)
        path_to_ec2rl = os.path.abspath("ec2rl")
        test_path = os.path.sep.join([os.path.split(path_to_ec2rl)[0], "test", "modules", "ec2rl"])
        sys.argv = [test_path, "menu-config"]
        module_path = os.path.join(self.callpath, "test/modules/single_diagnose/")
        ec2rl_run_test = ec2rlcore.main.Main(debug=True, full_init=True)

        ec2rl_run_test._prediags = ec2rlcore.moduledir.ModuleDir(module_path)
        ec2rl_run_test._modules = ec2rlcore.moduledir.ModuleDir(module_path)
        ec2rl_run_test._postdiags = ec2rlcore.moduledir.ModuleDir(module_path)

        # We don't need to run pre/post modules for this test
        ec2rl_run_test._prediags = []
        ec2rl_run_test._postdiags = []

        # Setup the input buffer for curses to grab from
        curses.initscr()
        # main menu -> run
        curses.ungetch("\n")
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)
        curses.ungetch(curses.KEY_DOWN)

        with contextlib.redirect_stdout(self.output):
            ec2rl_run_test()
        self.assertTrue(self.output.getvalue().startswith("\n-----------[Backup  Creation]-----------\n\nNo backup op"))
        self.assertTrue(self.output.getvalue().endswith(
            "/SV_3KrcrMZ2quIDzjn?InstanceID=i-deadbeef&Version={}\n\n".format(ec2rlcore.main.Main.PROGRAM_VERSION)))
        self.assertTrue("-\n\nRunning Modules:\nxennetrocket\n\n-" in self.output.getvalue())
        self.assertEqual(len(self.output.getvalue()), 1635)

        self.assertTrue(prediag_mock.called)
        self.assertTrue(main_log_handler_mock.called)
        self.assertTrue(debug_log_handler_mock.called)
        self.assertTrue(mkdir_mock.called)
        self.assertTrue(copyfile_mock.called)
        self.assertTrue(chdir_mock.called)
        self.assertTrue(write_config_mock.called)
        self.assertTrue(logging_fh_mock.called)
        # The resulting subcommand should be "run"
        self.assertEqual(ec2rl_run_test.subcommand, "run")
DSwin.py 文件源码 项目:Otop 作者: fcbarclo 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def WinCgetch(self):
        kp = -1
        while kp==-1:
            kp = self.VWscreen.getch()  
            ScrResized = curses.is_term_resized(self.scrsize[0],self.scrsize[1])
            if ScrResized:
                try:
                    y,x = self.VWscreen.getmaxyx()

                                minY = self.ScreenMinY
                                minX = self.ScreenMinX
                                bestY = self.ScreenFullY
                                bestX = self.ScreenFullX

                                if (y<minY) | (x<minX): # check resized  size
                        self.VWscreen.clear()
                        self.VWscreen.refresh()
                        curses.resizeterm(self.scrsize[0],self.scrsize[1]) # reset to original size
                        self.VWscreen.clear()
                        self.VWscreen.refresh()

                        curses.flash()
                        self.WinPrintError("Screen size not valid.  ")
                        time.sleep(1)
                        self.PRG_EXIT_SCR_SIZE = 1
                                curses.ungetch(27) # push ESC key to main loop: exit from program
                                else:   # set new size
                                        if (y>= bestY) and (x>=bestX):
                                                self.ScreenFullSize = 1
                        else:
                                                self.ScreenFullSize = 0

                        self.VWscreen.clear()
                        curses.resizeterm(y, x)

                        self.scrsize = []
                        self.scrsize = (y,x)

                        self.WinRefreshScr()

                except Exception as err:
                    self.WinPrintError("Error resizing screen... "+str(err)+ "       " )
        return(kp)


问题


面经


文章

微信
公众号

扫码关注公众号