diff options
-rw-r--r-- | cli/commands/cli_testcase.py | 5 | ||||
-rw-r--r-- | utils/functest_vacation.py | 52 |
2 files changed, 56 insertions, 1 deletions
diff --git a/cli/commands/cli_testcase.py b/cli/commands/cli_testcase.py index d8557b96..5d546a21 100644 --- a/cli/commands/cli_testcase.py +++ b/cli/commands/cli_testcase.py @@ -13,6 +13,7 @@ import yaml import functest.ci.tier_builder as tb import functest.utils.functest_utils as ft_utils +import functest.utils.functest_vacation as vacation """ global variables """ with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: @@ -48,7 +49,9 @@ class CliTestcase: click.echo(description) def run(self, testname): - if not os.path.isfile(ENV_FILE): + if testname == 'vacation': + vacation.main() + elif not os.path.isfile(ENV_FILE): click.echo("Functest environment is not ready. " "Run first 'functest env prepare'") else: diff --git a/utils/functest_vacation.py b/utils/functest_vacation.py new file mode 100644 index 00000000..0ba09447 --- /dev/null +++ b/utils/functest_vacation.py @@ -0,0 +1,52 @@ +from os import environ +from curses import initscr, curs_set, newwin, endwin,\ + KEY_RIGHT, KEY_LEFT, KEY_DOWN, KEY_UP +from random import randrange + + +def main(): + environ["TERM"] = 'Eterm' + initscr() + curs_set(0) + try: + win = newwin(16, 60, 0, 0) + win.keypad(True) + win.nodelay(True) + win.border('|', '|', '-', '-', '+', '+', '+', '+') + win.addch(4, 44, '@') + win.addstr(0, 5, ' Eat all the OPNFV bugs by FunTest! ') + win.addstr(15, 7, ' Left,Right,Up,Down: move; other keys: quit ') + snake = [[20, 7], [19, 7], [18, 7], [17, 7], + [16, 7], [15, 7], [14, 7], [13, 7]] + key = KEY_RIGHT + body = '~FUNTEST' + ind = 0 + while key != 27: + win.addstr(0, 44, ' Score: '+str(len(snake)-len(body))+' ') + win.timeout(140 - 2 * len(snake)) + getkey = win.getch() + key = key if getkey == -1 else getkey + snake.insert( + 0, [snake[0][0]+(key == KEY_RIGHT and 1 or + key == KEY_LEFT and -1), + snake[0][1]+(key == KEY_DOWN and 1 or + key == KEY_UP and -1)]) + win.addch(snake[len(snake)-1][1], snake[len(snake)-1][0], ' ') + if win.inch(snake[0][1], snake[0][0]) & 255 == 32: + snake.pop() + elif win.inch(snake[0][1], snake[0][0]) & 255 == ord('@'): + c = [n for n in [[randrange(1, 58, 1), randrange(1, 14, 1)] + for x in range(len(snake))] if n not in snake] + win.addch(c == [] and 4 or c[0][1], + c == [] and 44 or c[0][0], '@') + else: + break + ind += 1 + win.addch(snake[0][1], snake[0][0], body[ind % len(body)]) + finally: + endwin() + + print '\nSnake.PY-26lines by Kris Cieslak (defaultset.blogspot.com).' + print 'OPNFV adaptation by Functest dream team.' + print 'Thanks for playing, your score: '+str(len(snake)-len(body)-1)+'.' + print 'Find and fix more bugs in your real OPNFV setup!\n' |