test_main.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:aws-ec2rescue-linux 作者: awslabs 项目源码 文件源码
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")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号