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")
评论列表
文章目录