def test_card_names(self): pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5) rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2) horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8) self.assertEqual(pang_card.name, Cards.CardName.PANG) self.assertEqual(rifle_card.name, Cards.CardName.RIFLE) self.assertEqual(horse_card.name, Cards.CardName.HORSE)
def test_card_instances(self): pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5) rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2) horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8) self.assertIsInstance(pang_card, Cards.Card) self.assertIsInstance(rifle_card, Cards.Card) self.assertIsInstance(rifle_card, Cards.WeaponCard) self.assertIsInstance(horse_card, Cards.Card) self.assertIsInstance(horse_card, Cards.EquipmentCard)
def test_use_weapon_cards(self): rifle = Cards.RifleCard(Cards.Suit.CLUBS, 5) pistol = Cards.PistolCard(Cards.Suit.HEARTS, 8) player_names = [ 'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart' ] game_object = Game(player_names) game_object.active_player.add_cards([pistol, rifle]) self.assertIsNone(game_object.active_player.weapon) game_object.use_card(rifle) self.assertEqual(game_object.active_player.weapon, rifle) game_object.use_card(pistol) self.assertEqual(game_object.active_player.weapon, pistol)
def test_use_draw_cards(self): draw_card1 = Cards.WellsFargoCard(Cards.Suit.CLUBS, 5) draw_card2 = Cards.StageCoachCard(Cards.Suit.HEARTS, 8) player_names = [ 'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart' ] game_object = Game(player_names) game_object.active_player.add_cards([draw_card1, draw_card2]) self.assertEqual(len(game_object.active_player.hand), 2) game_object.use_card(draw_card1) self.assertEqual(len(game_object.active_player.hand), 4) game_object.use_card(draw_card2) self.assertEqual(len(game_object.active_player.hand), 5)
def test_card_attributes(self): card = Cards.Card('test_card', Cards.Suit.HEARTS, 5, Cards.CardPosition.TARGET) self.assertEqual(card.name, 'test_card') self.assertEqual(card.value, 5) self.assertEqual(card.suit, Cards.Suit.HEARTS) self.assertEqual(card.card_position, Cards.CardPosition.TARGET)
def test_use_equipment_cards(self): scope = Cards.ScopeCard(Cards.Suit.CLUBS, 6) barrel = Cards.BarrelCard(Cards.Suit.DIAMONDS, 7) horse = Cards.HorseCard(Cards.Suit.HEARTS, 8) player_names = [ 'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart' ] game_object = Game(player_names) game_object.active_player.add_cards([scope, barrel, horse]) self.assertIsNone(game_object.active_player.equipment) game_object.use_card(horse) self.assertEqual(game_object.active_player.equipment, horse) game_object.use_card(barrel) self.assertEqual(game_object.active_player.equipment, barrel) game_object.use_card(scope) self.assertEqual(game_object.active_player.equipment, scope)
def test_use_bang_cards(self): bang_card1 = Cards.PangCard(Cards.Suit.SPADES, 2) bang_card2 = Cards.PangCard(Cards.Suit.HEARTS, 8) player_names = [ 'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart' ] game_object = Game(player_names) game_object.active_player = game_object.players[3] game_object.active_player.add_cards([bang_card1, bang_card2]) self.assertEqual(game_object.players[4].health, 5) self.assertEqual(len(game_object.active_player.hand), 2) game_object.use_card(bang_card1, game_object.players[4]) self.assertEqual(len(game_object.active_player.hand), 1) self.assertEqual(game_object.players[4].health, 4) with self.assertRaises(InvalidTargetException): game_object.use_card(bang_card2, game_object.players[6]) self.assertEqual(len(game_object.active_player.hand), 1)
def test_get_possible_targets(self): pistol = Cards.PistolCard(Cards.Suit.DIAMONDS, 5) player_names = [ 'Samuel', 'Gustav', 'Maria', 'Andrea', 'Tomas', 'Mona', 'Lennart' ] game_object = Game.start_game(player_names) game_object.active_player = game_object.players[3] found_targets = game_object.get_possible_targets() self.assertEqual(found_targets, [game_object.players[2], game_object.players[4]]) game_object.active_player = game_object.players[5] game_object.active_player.add_cards([pistol]) game_object.use_card(pistol) found_targets = game_object.get_possible_targets() self.assertEqual(found_targets, [ game_object.players[3], game_object.players[4], game_object.players[6], game_object.players[0] ])
def create_deck(self): """ Create all the different cards an place in deck :return: """ deck = [] for s in Suit: for i in range(2, 9): deck.append(Cards.PangCard(i, s)) deck.append(Cards.MissCard(i, s)) for i in range(2, 9, 3): deck.append(Cards.PistolCard(i, s)) deck.append(Cards.StageCoachCard(i, s)) deck.append(Cards.BeerCard(i, s)) deck.append(Cards.PanicCard(i, s)) for i in range(3, 9, 2): deck.append(Cards.RifleCard(i, s)) deck.append(Cards.ScopeCard(i, s)) deck.append(Cards.BarrelCard(i, s)) deck.append(Cards.HorseCard(i, s)) for i in range(2, 9, 3): deck.append(Cards.WellsFargoCard(i, s)) return deck
def test_card_str(self): pang_card = Cards.PangCard(Cards.Suit.HEARTS, 5) rifle_card = Cards.RifleCard(Cards.Suit.SPADES, 2) horse_card = Cards.HorseCard(Cards.Suit.DIAMONDS, 8) pass