diff options
Diffstat (limited to 'tests/test_app.py')
-rw-r--r-- | tests/test_app.py | 241 |
1 files changed, 0 insertions, 241 deletions
diff --git a/tests/test_app.py b/tests/test_app.py deleted file mode 100644 index 1d13a71..0000000 --- a/tests/test_app.py +++ /dev/null @@ -1,241 +0,0 @@ -"""test_app.py - Testaa pelin suoritusta""" -# pylint: disable = missing-class-docstring, too-few-public-methods - -from io import StringIO -import unittest -from unittest.mock import patch - -from app import App - -from tui import Action - - -class KbdTest: - # pylint: disable = unused-argument, missing-function-docstring - def __init__(self, actions): - self.actions = actions - def read_action(self): - if self.actions: - action, _, _ = self.actions.pop(0) - else: - action = Action.NOOP - return action - def read_matrix_action(self, w, h, x, y): - return self.actions.pop(0) if self.actions else (Action.NOOP,x,y) - - -class TestAppClass(unittest.TestCase): - """ Testit itse appille """ - class DefaultArgs: - autoplay = 2 - intermediate = None - expert = None - board = None - mines = None - size = None - bot = None - quiet = None - delay = None - - sure_win_board = [ - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,1,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0] - ] - - sure_lose_board = [ - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,0,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1] - ] - - dssp_win_board = [ - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,0,0,0,0,0,0,0,0], - [0,1,1,0,1,1,0,1,0] - ] - - mini_board = [ - [0,0], - [0,1] - ] - - - def test_run(self): - """ Testataan että edes pyörähtää """ - app = App(self.DefaultArgs) - app.run() - del app - - def test_quit(self): - """ Testataan Quittaamista """ - app = App() - app.ui.kbd=KbdTest([ - (Action.QUIT,0,0), - (Action.OPEN,0,0) - ]) - app.run() - del app - - def test_many_games(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - quiet = True - for _ in range(50): - app = App(Args) - app.run() - del app - Args.intermediate = True - for _ in range(20): - app = App(Args) - app.run() - del app - Args.expert = True - for _ in range(10): - app = App(Args) - app.run() - del app - - def test_sure_win(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - board = self.sure_win_board - quiet = True - app = App(Args) - self.assertTrue(app.run()) - del app - - def test_dssp_win(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - board = self.dssp_win_board - app = App(Args) - self.assertTrue(app.run()) - del app - - def test_no_dssp_win_with_simple(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - board = self.dssp_win_board - quiet = True - bot = 1 - while True: - app = App(Args) - if not app.run(): - break - del app - - def test_sure_lose(self): - """ Varman häviön lauta palauttaa false """ - class Args(self.DefaultArgs): - board = self.sure_lose_board - app = App(Args) - self.assertFalse(app.run()) - del app - - def test_custom_size(self): - """ Varman häviön lauta palauttaa false """ - class Args(self.DefaultArgs): - size = (4, 4) - with patch('sys.stdout', new = StringIO()) as captured: - app = App(Args) - app.run() - self.assertIn("Mukautettu (4x4", captured.getvalue()) - del app - - def test_sure_win_with_actions(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - board = self.sure_win_board - autoplay = 0 - bot = 0 - app = App(Args) - app.ui.kbd=KbdTest([ - (Action.SAFE,0,0), - (Action.OPEN,0,0) - ]) - self.assertTrue(app.run()) - del app - - def test_sure_lose_with_actions(self): - """ Varman voiton lauta palauttaa true """ - class Args(self.DefaultArgs): - board = self.sure_lose_board - autoplay = 0 - app = App(Args) - app.ui.kbd=KbdTest([ - (Action.FLAG,0,0), - (Action.MINE,0,0), - (Action.OPEN,0,0) - ]) - self.assertFalse(app.run()) - del app - - def test_auto_play_hints(self): - """ Vihjeiden automaattipelaaminen toimii """ - class Args(self.DefaultArgs): - board = self.dssp_win_board - autoplay = 1 - app = App(Args) - app.ui.kbd=KbdTest([ - (Action.OPEN,0,0), - (Action.HINT,0,0), - ]) - self.assertTrue(app.run()) - del app - - def test_delay(self): - """ Hidastus toimii """ - class Args(self.DefaultArgs): - board = self.dssp_win_board - delay = 5 - app = App(Args) - with patch('time.sleep') as patched_sleep: - self.assertTrue(app.run()) - del app - patched_sleep.assert_called() - - def test_delay_can_be_off(self): - """ Hidastus ei ole aina päälle """ - class Args(self.DefaultArgs): - board = self.dssp_win_board - app = App(Args) - with patch('time.sleep') as patched_sleep: - self.assertTrue(app.run()) - del app - patched_sleep.assert_not_called() - - def test_botless_play(self): - """ Hidastus toimii """ - class Args(self.DefaultArgs): - board = self.mini_board - autoplay = 0 - delay = 50000 - app = App(Args) - app.ui.kbd=KbdTest([ - (Action.OPEN,0,0), - (Action.HINT,0,0), - (Action.OPEN,1,0), - (Action.HINT,0,0), - (Action.OPEN,0,1) - ]) - self.assertTrue(app.run()) - del app |