summaryrefslogtreecommitdiff
path: root/tests/test_app.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_app.py')
-rw-r--r--tests/test_app.py241
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