X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Ftests%2Ftest_gameboard.py;fp=naja%2Ftests%2Ftest_gameboard.py;h=ca031a33bee7c9e9b1a305e5f1a92c2ab2f4d859;hb=db97008646152ce2d93949e0266635fdd89a0b91;hp=e3aa32e03be48a27e0da319219fa880e25491c77;hpb=9f6988141b3238d693a6c4ee5db3fb1d4af56ce0;p=naja.git diff --git a/naja/tests/test_gameboard.py b/naja/tests/test_gameboard.py index e3aa32e..ca031a3 100644 --- a/naja/tests/test_gameboard.py +++ b/naja/tests/test_gameboard.py @@ -1,11 +1,20 @@ from unittest import TestCase -from naja.constants import BITS, MOVES +from naja.constants import BITS, MOVES, EXAMINE from naja.gameboard import GameBoard, LocationCard +from naja.options import parse_args from naja import actions class TestGameBoard(TestCase): + def setUp(self): + parse_args([]) + + def make_deck(self, cards=None): + if cards is None: + cards = [{'actions': []}] + return {'cards': cards} + def assert_state(self, state1, state2, exclude=(), player_exclude=()): def filter_dict(source, exclude_keys): return dict((k, v) for k, v in source.items() @@ -21,7 +30,7 @@ class TestGameBoard(TestCase): self.assertEqual(state1, state2) def test_export_new_board(self): - board = GameBoard.new_game([{'actions': [ + board = GameBoard.new_game({'cards': [{'actions': [ { 'action_class': 'LoseHealthOrMSB', 'required_bits': [], @@ -29,7 +38,7 @@ class TestGameBoard(TestCase): 'action_class': 'GainHealth', 'required_bits': [BITS.RED], }, - ]}]) + ]}]}) exported_state = board.export() board_locations = exported_state.pop('board_locations') self.assertEqual(exported_state, { @@ -47,6 +56,8 @@ class TestGameBoard(TestCase): }, ]}], 'player': board.player.export(), + 'puzzle': False, + 'player_mode': EXAMINE, }) positions = [] for position, location_state in board_locations: @@ -69,7 +80,7 @@ class TestGameBoard(TestCase): positions, sorted((x, y) for x in range(5) for y in range(5))) def test_lose_health(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) self.assertEqual(board.health, 4) state_1 = board.export() @@ -80,7 +91,7 @@ class TestGameBoard(TestCase): self.assert_state(state_1, state_2, exclude=['health']) def test_gain_health(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.health = 2 self.assertEqual(board.health, 2) state_1 = board.export() @@ -92,7 +103,7 @@ class TestGameBoard(TestCase): self.assert_state(state_1, state_2, exclude=['health']) def test_gain_health_at_max(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) self.assertEqual(board.health, 4) state_1 = board.export() @@ -110,7 +121,7 @@ class TestGameBoard(TestCase): return locations_dict def test_shift_locations_north(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.shift_locations('NORTH') self.assertEqual(board.board_locations, self.generate_locations({ @@ -118,7 +129,7 @@ class TestGameBoard(TestCase): })) def test_shift_locations_south(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.shift_locations('SOUTH') self.assertEqual(board.board_locations, self.generate_locations({ @@ -126,7 +137,7 @@ class TestGameBoard(TestCase): })) def test_shift_locations_east(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.shift_locations('EAST') self.assertEqual(board.board_locations, self.generate_locations({ @@ -134,7 +145,7 @@ class TestGameBoard(TestCase): })) def test_shift_locations_west(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.shift_locations('WEST') self.assertEqual(board.board_locations, self.generate_locations({ @@ -142,7 +153,7 @@ class TestGameBoard(TestCase): })) def test_rotate_locations_clockwise(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.rotate_locations('CLOCKWISE') self.assertEqual(board.board_locations, self.generate_locations({ @@ -152,7 +163,7 @@ class TestGameBoard(TestCase): })) def test_rotate_locations_clockwise_top(self): - board = GameBoard.new_game([{'actions': []}], initial_pos=(2, 0)) + board = GameBoard.new_game(self.make_deck(), initial_pos=(2, 0)) board.board_locations = self.generate_locations() board.rotate_locations('CLOCKWISE') self.assertEqual(board.board_locations, self.generate_locations({ @@ -161,7 +172,7 @@ class TestGameBoard(TestCase): })) def test_rotate_locations_clockwise_right(self): - board = GameBoard.new_game([{'actions': []}], initial_pos=(0, 2)) + board = GameBoard.new_game(self.make_deck(), initial_pos=(0, 2)) board.board_locations = self.generate_locations() board.rotate_locations('CLOCKWISE') self.assertEqual(board.board_locations, self.generate_locations({ @@ -171,7 +182,7 @@ class TestGameBoard(TestCase): })) def test_rotate_locations_clockwise_corner(self): - board = GameBoard.new_game([{'actions': []}], initial_pos=(0, 4)) + board = GameBoard.new_game(self.make_deck(), initial_pos=(0, 4)) board.board_locations = self.generate_locations() board.rotate_locations('CLOCKWISE') self.assertEqual(board.board_locations, self.generate_locations({ @@ -180,7 +191,7 @@ class TestGameBoard(TestCase): })) def test_rotate_locations_anticlockwise(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.board_locations = self.generate_locations() board.rotate_locations('ANTICLOCKWISE') self.assertEqual(board.board_locations, self.generate_locations({ @@ -190,17 +201,17 @@ class TestGameBoard(TestCase): })) def test_allow_chess_move_knight(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.allow_chess_move(MOVES.KNIGHT) self.assertEqual(board.player.movement_mode, MOVES.KNIGHT) def test_allow_chess_move_bishop(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.allow_chess_move(MOVES.BISHOP) self.assertEqual(board.player.movement_mode, MOVES.BISHOP) def test_allow_chess_move_castle(self): - board = GameBoard.new_game([{'actions': []}]) + board = GameBoard.new_game(self.make_deck()) board.allow_chess_move(MOVES.CASTLE) self.assertEqual(board.player.movement_mode, MOVES.CASTLE)