def test_get_page(self): self.maxDiff = None t = Terminal({'': []}, 'host', 'user', self.get_exec(), handler=self.handler, encoding='utf-8', lang='C', width=80) self.assertEqual(t.get_page(['title'], [], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-0): ' ])) self.assertEqual(t.get_page(['Main Menu', 'title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-3): ' ])) self.assertEqual(t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), Command('menu e', [CommandLine('command e', Meta())]), Command('menu f', [CommandLine('command f', Meta())]), Command('menu g', [CommandLine('command g', Meta())]), Command('menu h', [CommandLine('command h', Meta())]), Command('menu i', [CommandLine('command i', Meta())]), ], 0, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', ' Page 1 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', ' [4] | menu d', ' [5] | menu e', ' [6] | menu f', ' [7] | menu g', ' [8] | menu h', ' [9] | menu i', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-9): ' ])) self.assertEqual(t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), Command('menu e', [CommandLine('command e', Meta())]), Command('menu f', [CommandLine('command f', Meta())]), Command('menu g', [CommandLine('command g', Meta())]), Command('menu h', [CommandLine('command h', Meta())]), Command('menu i', [CommandLine('command i', Meta())]), ], 8, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '<= [P] Page 9 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', ' [4] | menu d', ' [5] | menu e', ' [6] | menu f', ' [7] | menu g', ' [8] | menu h', ' [9] | menu i', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-9): ' ])) self.assertEqual(t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), ], 99, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '<= [P] Page 100 / 100 ', '--------------------------------------------------------------------------------', ' [1] | menu a', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-1): ' ])) # sub menu self.assertEqual(t.get_page(['Main Menu', 'title'], [ Menu('menu a', [Command('menu b', [CommandLine('command b', Meta())])], Meta()), Menu('menu c', [ Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), ], Meta()), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | Go to menu a', ' [2] | Go to menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-2): ' ])) # multiple command lines self.assertEqual(t.get_page(['Main Menu', 'title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [ CommandLine('command b', Meta()), CommandLine('command b', Meta()), ]), Menu('menu c', [Command('menu d', [ CommandLine('command d', Meta()), CommandLine('command d', Meta()), ])], Meta()), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | Go to menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-3): ' ]))
def test_get_page_ja(self): self.maxDiff = None t = Terminal({'': []}, 'ホスト', 'ユーザ', self.get_exec(), handler=self.handler, encoding='utf-8', lang='ja_JP', width=80) self.assertEqual( t.get_page(['タイトル'], [], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-0): ' ])) self.assertEqual( t.get_page(['メインメニュー', 'タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-3): ' ])) self.assertEqual( t.get_page([ 'メインメニュー', 'タイトル1', 'タイトル2', 'タイトル3', 'タイトル4', 'タイトル5', 'タイトル6', 'タイトル7', 'タイトル8', ], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' ~ル2 > タイトル3 > タイトル4 > タイトル5 > タイトル6 > タイトル7 > タイトル8', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', '------+-------------------------------------------------------------------------', ' [0] | タイトル7 に戻る', '================================================================================', '番号を入力してください (0-3): ' ])) self.assertEqual( t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), Command('メニュー e', [CommandLine('コマンド e', Meta())]), Command('メニュー f', [CommandLine('コマンド f', Meta())]), Command('メニュー g', [CommandLine('コマンド g', Meta())]), Command('メニュー h', [CommandLine('コマンド h', Meta())]), Command('メニュー i', [CommandLine('コマンド i', Meta())]), ], 0, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', ' Page 1 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', ' [4] | メニュー d', ' [5] | メニュー e', ' [6] | メニュー f', ' [7] | メニュー g', ' [8] | メニュー h', ' [9] | メニュー i', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-9): ' ])) self.assertEqual( t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), Command('メニュー e', [CommandLine('コマンド e', Meta())]), Command('メニュー f', [CommandLine('コマンド f', Meta())]), Command('メニュー g', [CommandLine('コマンド g', Meta())]), Command('メニュー h', [CommandLine('コマンド h', Meta())]), Command('メニュー i', [CommandLine('コマンド i', Meta())]), ], 8, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '<= [P] Page 9 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', ' [4] | メニュー d', ' [5] | メニュー e', ' [6] | メニュー f', ' [7] | メニュー g', ' [8] | メニュー h', ' [9] | メニュー i', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-9): ' ])) self.assertEqual( t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), ], 99, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '<= [P] Page 100 / 100 ', '--------------------------------------------------------------------------------', ' [1] | メニュー a', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-1): ' ])) # sub menu self.assertEqual( t.get_page(['メインメニュー', 'タイトル'], [ Menu('メニュー a', [Command('メニュー b', [CommandLine('コマンド b', Meta())])], Meta()), Menu('メニュー c', [ Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), ], Meta()), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a へ', ' [2] | メニュー c へ', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-2): ' ])) # multiple command lines self.assertEqual( t.get_page(['メインメニュー', 'タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [ CommandLine('コマンド b', Meta()), CommandLine('コマンド b', Meta()), ]), Menu('メニュー c', [ Command('メニュー d', [ CommandLine('コマンド d', Meta()), CommandLine('コマンド d', Meta()), ]) ], Meta()), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c へ', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-3): ' ]))
def test_get_page_ja(self): self.maxDiff = None t = Terminal({'': []}, 'ホスト', 'ユーザ', self.get_exec(), handler=self.handler, encoding='utf-8', lang='ja_JP', width=80) self.assertEqual(t.get_page(['タイトル'], [], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-0): ' ])) self.assertEqual(t.get_page(['メインメニュー', 'タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-3): ' ])) self.assertEqual(t.get_page([ 'メインメニュー', 'タイトル1', 'タイトル2', 'タイトル3', 'タイトル4', 'タイトル5', 'タイトル6', 'タイトル7', 'タイトル8', ], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' ~ル2 > タイトル3 > タイトル4 > タイトル5 > タイトル6 > タイトル7 > タイトル8', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', '------+-------------------------------------------------------------------------', ' [0] | タイトル7 に戻る', '================================================================================', '番号を入力してください (0-3): ' ])) self.assertEqual(t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), Command('メニュー e', [CommandLine('コマンド e', Meta())]), Command('メニュー f', [CommandLine('コマンド f', Meta())]), Command('メニュー g', [CommandLine('コマンド g', Meta())]), Command('メニュー h', [CommandLine('コマンド h', Meta())]), Command('メニュー i', [CommandLine('コマンド i', Meta())]), ], 0, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', ' Page 1 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', ' [4] | メニュー d', ' [5] | メニュー e', ' [6] | メニュー f', ' [7] | メニュー g', ' [8] | メニュー h', ' [9] | メニュー i', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-9): ' ])) self.assertEqual(t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [CommandLine('コマンド b', Meta())]), Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), Command('メニュー e', [CommandLine('コマンド e', Meta())]), Command('メニュー f', [CommandLine('コマンド f', Meta())]), Command('メニュー g', [CommandLine('コマンド g', Meta())]), Command('メニュー h', [CommandLine('コマンド h', Meta())]), Command('メニュー i', [CommandLine('コマンド i', Meta())]), ], 8, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '<= [P] Page 9 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c', ' [4] | メニュー d', ' [5] | メニュー e', ' [6] | メニュー f', ' [7] | メニュー g', ' [8] | メニュー h', ' [9] | メニュー i', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-9): ' ])) self.assertEqual(t.get_page(['タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), ], 99, 100), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' タイトル', '--------------------------------------------------------------------------------', '<= [P] Page 100 / 100 ', '--------------------------------------------------------------------------------', ' [1] | メニュー a', '------+-------------------------------------------------------------------------', ' [0] | 終了', '================================================================================', '番号を入力してください (0-1): ' ])) # sub menu self.assertEqual(t.get_page(['メインメニュー', 'タイトル'], [ Menu('メニュー a', [Command('メニュー b', [CommandLine('コマンド b', Meta())])], Meta()), Menu('メニュー c', [ Command('メニュー c', [CommandLine('コマンド c', Meta())]), Command('メニュー d', [CommandLine('コマンド d', Meta())]), ], Meta()), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a へ', ' [2] | メニュー c へ', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-2): ' ])) # multiple command lines self.assertEqual(t.get_page(['メインメニュー', 'タイトル'], [ Command('メニュー a', [CommandLine('コマンド a', Meta())]), Command('メニュー b', [ CommandLine('コマンド b', Meta()), CommandLine('コマンド b', Meta()), ]), Menu('メニュー c', [Command('メニュー d', [ CommandLine('コマンド d', Meta()), CommandLine('コマンド d', Meta()), ])], Meta()), ], 0, 1), '\n'.join([ 'ホスト名: ホスト 実行ユーザ: ユーザ', '================================================================================', ' メインメニュー > タイトル', '--------------------------------------------------------------------------------', ' [1] | メニュー a', ' [2] | メニュー b', ' [3] | メニュー c へ', '------+-------------------------------------------------------------------------', ' [0] | メインメニュー に戻る', '================================================================================', '番号を入力してください (0-3): ' ]))
def test_get_page(self): self.maxDiff = None t = Terminal({'': []}, 'host', 'user', self.get_exec(), handler=self.handler, encoding='utf-8', lang='C', width=80) self.assertEqual( t.get_page(['title'], [], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-0): ' ])) self.assertEqual( t.get_page(['Main Menu', 'title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-3): ' ])) self.assertEqual( t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), Command('menu e', [CommandLine('command e', Meta())]), Command('menu f', [CommandLine('command f', Meta())]), Command('menu g', [CommandLine('command g', Meta())]), Command('menu h', [CommandLine('command h', Meta())]), Command('menu i', [CommandLine('command i', Meta())]), ], 0, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', ' Page 1 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', ' [4] | menu d', ' [5] | menu e', ' [6] | menu f', ' [7] | menu g', ' [8] | menu h', ' [9] | menu i', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-9): ' ])) self.assertEqual( t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [CommandLine('command b', Meta())]), Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), Command('menu e', [CommandLine('command e', Meta())]), Command('menu f', [CommandLine('command f', Meta())]), Command('menu g', [CommandLine('command g', Meta())]), Command('menu h', [CommandLine('command h', Meta())]), Command('menu i', [CommandLine('command i', Meta())]), ], 8, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '<= [P] Page 9 / 100 [N] =>', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | menu c', ' [4] | menu d', ' [5] | menu e', ' [6] | menu f', ' [7] | menu g', ' [8] | menu h', ' [9] | menu i', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-9): ' ])) self.assertEqual( t.get_page(['title'], [ Command('menu a', [CommandLine('command a', Meta())]), ], 99, 100), '\n'.join([ 'Host: host User: user', '================================================================================', ' title', '--------------------------------------------------------------------------------', '<= [P] Page 100 / 100 ', '--------------------------------------------------------------------------------', ' [1] | menu a', '------+-------------------------------------------------------------------------', ' [0] | Quit', '================================================================================', 'Press menu number (0-1): ' ])) # sub menu self.assertEqual( t.get_page(['Main Menu', 'title'], [ Menu('menu a', [Command('menu b', [CommandLine('command b', Meta())])], Meta()), Menu('menu c', [ Command('menu c', [CommandLine('command c', Meta())]), Command('menu d', [CommandLine('command d', Meta())]), ], Meta()), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | Go to menu a', ' [2] | Go to menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-2): ' ])) # multiple command lines self.assertEqual( t.get_page(['Main Menu', 'title'], [ Command('menu a', [CommandLine('command a', Meta())]), Command('menu b', [ CommandLine('command b', Meta()), CommandLine('command b', Meta()), ]), Menu('menu c', [ Command('menu d', [ CommandLine('command d', Meta()), CommandLine('command d', Meta()), ]) ], Meta()), ], 0, 1), '\n'.join([ 'Host: host User: user', '================================================================================', ' Main Menu > title', '--------------------------------------------------------------------------------', ' [1] | menu a', ' [2] | menu b', ' [3] | Go to menu c', '------+-------------------------------------------------------------------------', ' [0] | Return to Main Menu', '================================================================================', 'Press menu number (0-3): ' ]))