From b9d8fc5f7fba05d4abda217b970713d1a8201607 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Sun, 4 Jul 2021 14:48:22 +0200 Subject: [PATCH] add more tests --- backend/tests/cards_test.py | 218 +++++++++++++++++++++++++++++++++++- 1 file changed, 217 insertions(+), 1 deletion(-) diff --git a/backend/tests/cards_test.py b/backend/tests/cards_test.py index bbe3757..bb53a30 100644 --- a/backend/tests/cards_test.py +++ b/backend/tests/cards_test.py @@ -59,6 +59,7 @@ def test_volcanic(): volcanic_guy.hand = [Volcanic(0,0), Bang(0,0), Bang(0,0)] volcanic_guy.play_card(0) assert isinstance(volcanic_guy.equipment[0], Volcanic) + assert volcanic_guy.get_sight() == 1 volcanic_guy.play_card(0, g.players[(g.turn+1)%3].name) assert len(volcanic_guy.hand) == 1 volcanic_guy.play_card(0, g.players[(g.turn+1)%3].name) @@ -98,4 +99,219 @@ def test_dinamite(): g.deck.cards.insert(0, Dinamite(Suit.SPADES, 5)) g.players[g.turn].pick() assert len(g.players[g.turn].equipment) == 0 - assert g.players[g.turn].lives == 1 \ No newline at end of file + assert g.players[g.turn].lives == 1 + +# test mirino +def test_mirino(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(4)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + mirino_guy = g.players[g.turn] + mirino_guy.draw('') + mirino_guy.hand = [Mirino(0,0)] + assert mirino_guy.get_sight(countWeapon=False) == 1 + mirino_guy.play_card(0) + assert mirino_guy.get_sight(countWeapon=False) == 2 + +# test mustang +def test_mustang(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + mustang_guy = g.players[g.turn] + mustang_guy.draw('') + mustang_guy.hand = [Mustang(0,0)] + assert mustang_guy.get_visibility() == 0 + mustang_guy.play_card(0) + assert mustang_guy.get_visibility() == 1 + +# test Prigione +def test_prigione(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(4)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + sheriff = g.players[g.turn] + sheriff.draw('') + sheriff.hand = [Prigione(0,0)] + sheriff.play_card(0, g.players[(g.turn+1)%4].name) + assert len(sheriff.hand) == 0 + sheriff.end_turn() + g.deck.cards.insert(0, Prigione(Suit.CLUBS, 5)) + skip_check = g.turn + g.players[g.turn].pick() + assert g.turn != skip_check + g.players[g.turn].draw('') + g.players[g.turn].hand = [Prigione(0,0)] + g.players[g.turn].play_card(0, sheriff.name) + assert len(g.players[g.turn].hand) == 1 + g.players[g.turn].play_card(0, g.players[(g.turn+1)%4].name) + g.players[g.turn].end_turn() + g.deck.cards.insert(0, Prigione(Suit.HEARTS, 5)) + skip_check = g.turn + g.players[g.turn].pick() + assert g.turn == skip_check + +# test all weapons ranges +def test_all_weapons(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(4)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + g.players[g.turn].draw('') + g.players[g.turn].hand = [Volcanic(0,0), Schofield(0,0), Remington(0,0), RevCarabine(0,0), Winchester(0,0)] + g.players[g.turn].play_card(0) + assert g.players[g.turn].get_sight() == 1 + g.players[g.turn].play_card(0) + assert g.players[g.turn].get_sight() == 2 + g.players[g.turn].play_card(0) + assert g.players[g.turn].get_sight() == 3 + g.players[g.turn].play_card(0) + assert g.players[g.turn].get_sight() == 4 + g.players[g.turn].play_card(0) + assert g.players[g.turn].get_sight() == 5 + +# test bang +def test_bang(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(2)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + g.players[g.turn].draw('') + g.players[g.turn].hand = [Bang(0,0), Bang(0,0)] + assert len(g.players[g.turn].hand) == 2 + g.players[g.turn].play_card(0, g.players[(g.turn+1)%2].name) + assert len(g.players[g.turn].hand) == 1 + g.players[g.turn].play_card(0, g.players[(g.turn+1)%2].name) + assert len(g.players[g.turn].hand) == 1 + +# test birra +def test_birra_2p(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(2)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + g.players[g.turn].draw('') + g.players[g.turn].hand = [Birra(0,0)] + g.players[g.turn].lives = 1 + g.players[g.turn].play_card(0) + assert g.players[g.turn].lives == 1 + +# test birra +def test_birra_3p(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + initial_p = g.players[g.turn] + g.players[g.turn].draw('') + g.players[g.turn].hand = [Birra(0,0)] + g.players[g.turn].lives = 1 + g.players[g.turn].play_card(0) + assert g.players[g.turn].lives == 2 + # test beer save + g.players[g.turn].hand = [Birra(0,0)] + g.players[g.turn].lives = 1 + g.players[g.turn].end_turn() + g.players[g.turn].draw('') + g.players[g.turn].hand = [Bang(0,0)] + g.players[g.turn].play_card(0, initial_p.name) + assert initial_p.lives == 1 + # test non overflow + g.players[g.turn].lives = g.players[g.turn].max_lives + g.players[g.turn].hand = [Birra(0,0)] + g.players[g.turn].play_card(0) + assert g.players[g.turn].lives == g.players[g.turn].max_lives + +# test CatBalou +#TODO + +# test Diligenza +def test_diligenza(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(4)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + g.players[g.turn].draw('') + g.players[g.turn].hand = [Diligenza(0,0)] + g.players[g.turn].play_card(0) + assert len(g.players[g.turn].hand) == 2 + +# test Duello +#TODO + +# test Emporio +#TODO + +# test Gatling +#TODO + +# test Indiani +#TODO + +# test Mancato +#TODO + +# test Panico +#TODO + +# test Saloon +#TODO + +# test WellsFargo +def test_diligenza(): + sio = DummySocket() + g = Game('test', sio) + ps = [Player(f'p{i}', f'p{i}', sio) for i in range(4)] + for p in ps: + g.add_player(p) + g.start_game() + for p in ps: + p.available_characters = [Character('test_char', 4)] + p.set_character(p.available_characters[0].name) + g.players[g.turn].draw('') + g.players[g.turn].hand = [WellsFargo(0,0)] + g.players[g.turn].play_card(0) + assert len(g.players[g.turn].hand) == 3