Ejemplo n.º 1
0
	def test_Scout_autoselect(self):
		tu.print_test_header("test Scout autoselect")
		scout = intrigue.Scout(self.game, self.player1)
		self.player1.deck.append(supply_cards.Copper(self.game, self.player1))
		self.player1.deck.append(supply_cards.Copper(self.game, self.player1))
		self.player1.deck.append(supply_cards.Estate(self.game, self.player1))
		self.player1.deck.append(supply_cards.Estate(self.game, self.player1))
		initial_decksize = len(self.player1.deck)
		self.player1.hand.add(scout)

		scout.play()
		self.assertTrue(self.player1.deck[-1].title == "Copper")
		self.assertTrue(self.player1.deck[-2].title == "Copper")
		self.assertTrue(len(self.player1.deck) == initial_decksize - 2)
Ejemplo n.º 2
0
    def test_Rabble(self):
        tu.print_test_header("test Rabble")
        rabble = prosperity.Rabble(self.game, self.player1)
        copper = supply_cards.Copper(self.game, self.player2)
        estate = supply_cards.Estate(self.game, self.player2)

        self.player2.deck.append(estate)
        self.player2.deck.append(copper)
        self.player2.deck.append(estate)

        duchy = supply_cards.Duchy(self.game, self.player3)
        gardens = base.Gardens(self.game, self.player3)
        great_hall = intrigue.Great_Hall(self.game, self.player3)

        self.player3.deck.append(duchy)
        self.player3.deck.append(gardens)
        self.player3.deck.append(great_hall)

        rabble.play()
        topdeck1 = self.player2.topdeck()
        topdeck2 = self.player2.topdeck()
        self.assertTrue(topdeck1.title == "Estate")
        self.assertTrue(topdeck2.title == "Estate")
        yield tu.send_input(self.player3, "post_selection",
                            ["Gardens", "Duchy"])

        topdeck1 = self.player3.topdeck()
        topdeck2 = self.player3.topdeck()

        self.assertTrue(topdeck1.title == "Duchy")
        self.assertTrue(topdeck2.title == "Gardens")
Ejemplo n.º 3
0
    def test_Royal_Seal(self):
        tu.print_test_header("test Royal Seal")
        royal_seal = prosperity.Royal_Seal(self.game, self.player1)
        workers_village = prosperity.Workers_Village(self.game, self.player1)
        copper = supply_cards.Copper(self.game, self.player1)
        self.player1.hand.add(royal_seal)
        self.player1.hand.add(copper)
        tu.add_many_to_hand(self.player1, workers_village, 3)

        workers_village.play()
        workers_village.play()
        workers_village.play()

        royal_seal.play()
        yield tu.send_input(self.player1, "buyCard", "Curse")
        self.assertTrue(self.player1.last_mode["mode"] == "select")
        yield tu.send_input(self.player1, "post_selection", ["Yes"])
        self.assertTrue(self.player1.deck[-1].title == "Curse")
        yield gen.sleep(.2)
        self.assertTrue(self.player1.last_mode["mode"] == "buy")

        yield tu.send_input(self.player1, "buyCard", "Silver")
        self.assertTrue(self.player1.last_mode["mode"] == "select")

        yield tu.send_input(self.player1, "post_selection", ["No"])
        self.assertTrue(self.player1.discard_pile[-1].title == "Silver")
        yield gen.sleep(.2)
        self.assertTrue(self.player1.last_mode["mode"] == "buy")
        yield tu.send_input(self.player1, "buyCard", "Mint")
        self.assertTrue(self.player1.last_mode["mode"] == "buy")
Ejemplo n.º 4
0
    def test_Vault(self):
        tu.print_test_header("testing vault")
        vault = prosperity.Vault(self.game, self.player1)
        self.player1.hand.add(vault)

        vault.play()
        yield tu.send_input(self.player1, "post_selection",
                            ["Estate", "Estate"])
        #add two coppers to player2's hand so he can use vault to discard
        tu.add_many_to_hand(self.player2,
                            supply_cards.Copper(self.game, self.player2), 2)
        self.assertTrue(self.player1.balance == 2)
        self.assertTrue(self.player1.last_mode["mode"] == "wait")
        #both players should be able to choose to discard at the same time
        self.assertTrue(self.player2.last_mode["mode"] == "select")
        self.assertTrue(self.player3.last_mode["mode"] == "select")
        yield tu.send_input(self.player2, "post_selection", ["Yes"])
        cards_in_hand = len(self.player2.hand.card_array())
        yield tu.send_input(self.player2, "post_selection",
                            ["Copper", "Copper"])
        self.assertTrue(
            len(self.player2.hand.card_array()) == cards_in_hand - 1)

        yield tu.send_input(self.player3, "post_selection", ["No"])
        self.assertTrue(self.player1.last_mode["mode"] == "buy")
Ejemplo n.º 5
0
 def test_Spice_Merchant(self):
     tu.print_test_header("test Spice Merchant")
     spice_merchant1 = hl.Spice_Merchant(self.game, self.player1)
     spice_merchant2 = hl.Spice_Merchant(self.game, self.player1)
     copper = supply_cards.Copper(self.game, self.player1)
     silver = supply_cards.Silver(self.game, self.player1)
     self.player1.hand.add(spice_merchant1)
     self.player1.hand.add(spice_merchant2)
     self.player1.deck = [silver] * 5
     self.player1.hand.add(copper)
     yield tu.send_input(self.player1, "play", "Spice Merchant")
     yield tu.send_input(self.player1, "post_selection", ["Copper"])
     yield tu.send_input(self.player1, "post_selection",
                         ["+2 cards +1 action"])
     self.assertTrue(copper in self.game.trash_pile)
     self.assertTrue(
         len(self.player1.hand.card_array()) == 8
     )  # We started with 5 cards and then added 2 SMs and a copper (8 cards), then put one in
     yield tu.send_input(
         self.player1, "play", "Spice Merchant"
     )  # play and trashed the copper, then drew 2 brining us back to 8
     yield tu.send_input(self.player1, "post_selection", ["Copper"])
     yield tu.send_input(self.player1, "post_selection", ["+$2 +1 buy"])
     self.assertTrue(len(self.game.trash_pile) == 2)
     self.assertTrue(self.player1.buys == 2)
     self.assertTrue(self.player1.balance == 2)
Ejemplo n.º 6
0
	def test_Trading_Post(self):
		tu.print_test_header("test Trading Post")
		trading_post = intrigue.Trading_Post(self.game, self.player1)
		copper = supply_cards.Copper(self.game, self.player1)
		tu.clear_player_hand(self.player1)
		self.player1.hand.add(copper)
		self.player1.hand.add(trading_post)
		self.player1.actions = 3

		yield tu.send_input(self.player1, "play", "Trading Post")
		self.assertTrue(len(self.player1.hand) == 0)

		tu.clear_player_hand(self.player1)
		self.player1.hand.add(copper)
		self.player1.hand.add(copper)
		self.player1.hand.add(trading_post)

		trading_post.play()
		self.assertTrue(self.player1.hand.get_count("Silver") == 1)

		self.player1.hand.add(trading_post)
		self.player1.hand.add(trading_post)
		self.player1.hand.add(trading_post)
		trading_post.play()
		yield tu.send_input(self.player1, "post_selection", ["Trading Post", "Trading Post"])
		self.assertTrue(self.player1.hand.get_count("Silver") == 2)
Ejemplo n.º 7
0
    def test_Thief_3_players(self):
        tu.print_test_header("test Thief 3 players")
        thief_card = base.Thief(self.game, self.player1)
        self.player1.hand.add(thief_card)

        player2gold = supply_cards.Gold(self.game, self.player2)
        player3copper = supply_cards.Copper(self.game, self.player3)

        self.player2.deck = [
            supply_cards.Estate(self.game, self.player2), player2gold
        ]
        self.player3.deck = [
            player3copper,
            supply_cards.Estate(self.game, self.player3)
        ]
        select_gain_gold_future = gen.Future()
        select_gain_copper_future = gen.Future()
        gain_future = gen.Future()
        self.player1.select = unittest.mock.MagicMock(
            side_effect=[select_gain_gold_future, select_gain_copper_future])
        self.player1.gain = unittest.mock.Mock(return_value=gain_future)

        thief_card.play()
        self.assertTrue(player2gold in self.game.trash_pile)

        select_gain_gold_future.set_result(["Yes"])
        yield gen.moment
        self.player1.gain.assert_called_with("Gold", False)
        gain_future.set_result("finish gaining gold")
        yield gen.moment
        self.assertTrue(player3copper in self.game.trash_pile)
        select_gain_copper_future.set_result(["Yes"])
        yield gen.moment
        self.player1.gain.assert_called_with("Copper", False)
Ejemplo n.º 8
0
	def base_deck(self):
		deck = []
		for i in range(0, 7):
			deck.append(supply_cards.Copper(game=self.game, played_by=self))
		for i in range(0, 3):
			deck.append(supply_cards.Estate(game=self.game, played_by=self))
		random.shuffle(deck)
		return deck
Ejemplo n.º 9
0
	def test_Swindler(self):
		tu.print_test_header("test Swindler")
		swindler = intrigue.Swindler(self.game, self.player1)
		self.player2.deck.append(supply_cards.Copper(self.game, self.player2))
		self.player1.hand.add(swindler)

		swindler.play()
		yield tu.send_input(self.player1, "selectSupply", ["Curse"])
		self.assertTrue(self.player2.discard_pile[-1].title == "Curse")
Ejemplo n.º 10
0
 def test_Gardens(self):
     tu.print_test_header("test Gardens")
     gardens = base.Gardens(self.game, self.player1)
     self.player1.hand.add(gardens)
     self.assertTrue(gardens.get_vp() == 1)
     for i in range(0, 9):
         self.player1.deck.append(base.Gardens(self.game, self.player1))
     # decksize = 20
     self.assertTrue(self.player1.total_vp() == 23)
     self.player1.deck.append(supply_cards.Copper(self.game, self.player1))
     self.assertTrue(self.player1.total_vp() == 23)
Ejemplo n.º 11
0
	def test_Warehouse(self):
		tu.print_test_header("test Warehouse")
		copper = supply_cards.Copper(self.game, self.player1)
		self.player1.hand.add(copper)
		warehouse = sea.Warehouse(self.game, self.player1)
		warehouse.play()

		self.assertTrue(self.player1.actions == 1)
		self.assertTrue(len(self.player1.hand) == 9)

		yield tu.send_input(self.player1, "post_selection", ["Copper", "Copper", "Copper"])
		self.assertTrue(len(self.player1.hand) == 6)
Ejemplo n.º 12
0
	def test_Secret_Chamber(self):
		tu.print_test_header("test Secret Chamber")
		secret_chamber = intrigue.Secret_Chamber(self.game, self.player1)
		estate = supply_cards.Estate(self.game, self.player1)
		tu.clear_player_hand(self.player1)

		tu.add_many_to_hand(self.player1, estate, 4)
		self.player1.hand.add(secret_chamber)

		secret_chamber.play()
		yield tu.send_input(self.player1, "post_selection", ["Estate", "Estate", "Estate", "Estate"])
		self.assertTrue(self.player1.balance == 4)
		self.player1.end_turn()
		
		tu.clear_player_hand(self.player1)
		tu.add_many_to_hand(self.player1, estate, 4)
		self.player1.hand.add(secret_chamber)
		#clear player3's hand no reaction
		tu.clear_player_hand(self.player3)

		self.player1.deck.append(supply_cards.Copper(self.game, self.player1))
		self.player1.deck.append(supply_cards.Copper(self.game, self.player1))
		self.player2.hand.add(base.Militia(self.game, self.player2))

		self.player2.hand.play("Militia")
		yield tu.send_input(self.player1, "post_selection", ["Reveal"])
		self.assertTrue(self.player2.last_mode["mode"] == "wait")
		#put back on top
		yield tu.send_input(self.player1, "post_selection", ["Estate", "Estate"])
		#second secret chamber
		yield tu.send_input(self.player1, "post_selection", ["Hide"])
		yield gen.sleep(.2)
		#discard
		yield tu.send_input(self.player1, "post_selection", ["Estate", "Estate"])
		self.assertTrue(len(self.player1.hand.card_array()) == 3)
		estates = self.player1.hand.get_count("Estate")
		self.player1.draw(2)
		self.assertTrue(self.player1.hand.get_count("Estate") == estates + 2)
		self.assertTrue(self.player2.last_mode["mode"] != "wait")
Ejemplo n.º 13
0
	def test_Coppersmith(self):
		tu.print_test_header("test Coppersmith")
		coppersmith = intrigue.Coppersmith(self.game, self.player1)
		copper = supply_cards.Copper(self.game, self.player1)
		self.player1.hand.add(coppersmith)
		self.player1.hand.add(copper)

		coppersmith.play()
		copper.play()
		self.assertTrue(self.player1.balance == 2)
		#copper should be back to $1 after turn
		self.player1.end_turn()
		self.assertTrue(copper.value == 1)
Ejemplo n.º 14
0
    def test_Counting_House(self):
        tu.print_test_header("test Counting House")
        counting_house = prosperity.Counting_House(self.game, self.player1)
        copper1 = supply_cards.Copper(self.game, self.player1)
        copper2 = supply_cards.Copper(self.game, self.player1)
        copper3 = supply_cards.Copper(self.game, self.player1)

        num_coppers = self.player1.hand.get_count('Copper')
        self.player1.discard_pile = []
        self.player1.discard_pile.append(copper1)
        self.player1.discard_pile.append(copper2)
        self.player1.discard_pile.append(copper3)
        all_copper = len(
            [x for x in self.player1.all_cards() if x.title == "Copper"])

        counting_house.play()
        yield tu.send_input(self.player1, "post_selection", ['2'])
        self.assertTrue(
            self.player1.hand.get_count('Copper') == num_coppers + 2)
        self.assertTrue(len(self.player1.discard_pile) == 1)
        self.assertTrue(
            len([x for x in self.player1.all_cards()
                 if x.title == "Copper"]) == all_copper)
Ejemplo n.º 15
0
	def test_Upgrade(self):
		tu.print_test_header("test Upgrade")
		upgrade = intrigue.Upgrade(self.game, self.player1)
		tu.add_many_to_hand(self.player1, upgrade, 2)
		self.player1.hand.add(supply_cards.Copper(self.game, self.player1))
		self.player1.hand.add(supply_cards.Estate(self.game, self.player1))

		upgrade.play()

		yield tu.send_input(self.player1, "post_selection", ["Copper"])
		upgrade.play()
		yield tu.send_input(self.player1, "post_selection", ["Estate"])
		yield tu.send_input(self.player1, "selectSupply", ["Silver"])
		self.assertTrue("Silver" == self.player1.discard_pile[-1].title)
Ejemplo n.º 16
0
 def test_Embassy(self):
     tu.print_test_header("test Embassy")
     self.player1.balance = 5
     yield tu.send_input(self.player1, "buyCard", "Embassy")
     self.assertTrue(self.player2.discard_pile[-1].title == "Silver")
     self.assertTrue(self.player3.discard_pile[-1].title == "Silver")
     embassy = hl.Embassy(self.game, self.player2)
     copper = supply_cards.Copper(self.game, self.player2)
     tu.set_player_hand(self.player2, [embassy])
     tu.add_many_to_hand(self.player2, copper, 4)
     embassy.play()
     yield tu.send_input(self.player2, "post_selection",
                         ["Copper", "Copper", "Copper"])
     self.assertTrue(len(self.player2.hand) == 6)
Ejemplo n.º 17
0
    def test_Develop(self):
        tu.print_test_header("Test Develop")
        develop = hl.Develop(self.game, self.player1)
        tu.add_many_to_hand(self.player1, develop, 2)
        self.player1.hand.add(supply_cards.Copper(self.game, self.player1))
        self.player1.hand.add(supply_cards.Estate(self.game, self.player1))

        develop.play()

        yield tu.send_input(self.player1, "post_selection", ["Copper"])
        develop.play()
        yield tu.send_input(self.player1, "post_selection", ["Estate"])
        yield tu.send_input(self.player1, "selectSupply", ["Silver"])
        self.assertTrue("Silver" == self.player1.discard_pile[-1].title)
Ejemplo n.º 18
0
 def test_Chancellor(self):
     tu.print_test_header("test Chancellor")
     self.player1.discard_pile.append(
         supply_cards.Copper(self.game, self.player1))
     chancellor = base.Chancellor(self.game, self.player1)
     self.player1.hand.add(chancellor)
     select_future = gen.Future()
     self.player1.select = unittest.mock.Mock(return_value=select_future)
     chancellor.play()
     self.assertTrue(len(self.player1.discard_pile) == 1)
     decksize = len(self.player1.deck)
     select_future.set_result(["Yes"])
     yield gen.moment
     self.assertTrue(len(self.player1.discard_pile) == decksize + 1)
     self.assertTrue(len(self.player1.deck) == 0)
Ejemplo n.º 19
0
    def test_Peddler(self):
        tu.print_test_header("test Peddler")
        village = base.Village(self.game, self.player1)
        copper = supply_cards.Copper(self.game, self.player1)
        self.player1.hand.add(copper)
        tu.add_many_to_hand(self.player1, village, 5)

        village.play()
        self.assertTrue(self.game.price_modifier["Peddler"] == 0)
        village.play()
        village.play()
        village.play()
        village.play()
        copper.play()
        self.assertTrue(self.game.price_modifier["Peddler"] == -10)
        self.assertTrue(self.game.card_from_title("Peddler").get_price() == 0)
Ejemplo n.º 20
0
 def test_Library(self):
     tu.print_test_header("test Library")
     library = base.Library(self.game, self.player1)
     village = base.Village(self.game, self.player1)
     copper = supply_cards.Copper(self.game, self.player1)
     self.player1.deck = [copper, village, copper]
     self.player1.hand.add(library)
     self.player1.hand.add = unittest.mock.Mock()
     select_future = gen.Future()
     self.player1.select = unittest.mock.Mock(return_value=select_future)
     library.play()
     self.player1.hand.add.assert_called_with(copper)
     select_future.set_result(["Yes"])
     yield gen.moment
     self.player1.hand.add.assert_called_with(copper)
     self.assertTrue("Village" not in self.player1.hand)
Ejemplo n.º 21
0
	def __init__(self, players, required_cards, excluded_cards, req_supply="default", test=False):
		Game.__init__(self, players, req_supply)
		if not test:
			self.logger = logHandler.LogHandler(", ".join(map(lambda x: x.name, self.players)) + " " + time.ctime(time.time()))
		else:
			self.logger = logHandler.TestLogHandler()
		# randomize turn order
		random.shuffle(self.players)
		self.trash_pile = []
		self.empty_piles = 0
		self.mat = {}
		if req_supply == "default":
			rand = random.randint(1, 10)
			if rand < 2:
				req_supply = "prosperity"

		# kingdom = dictionary {card.title => [card, count]} i.e {"Copper": [card.Copper(self,None),10]}
		base_supply = [supply_cards.Curse(self, None), supply_cards.Estate(self, None),
		               supply_cards.Duchy(self, None), supply_cards.Province(self, None), supply_cards.Copper(self, None),
		               supply_cards.Silver(self, None), supply_cards.Gold(self, None)]

		if req_supply == "prosperity":
			base_supply.append(supply_cards.Colony(self, None))
			base_supply.append(supply_cards.Platinum(self, None))

		self.base_supply = self.init_supply(base_supply)
		generator = kg.kingdomGenerator(self, required_cards, excluded_cards)
		if not test:
			self.kingdom = self.init_supply(generator.gen_kingdom())
		else:
			self.kingdom = self.init_supply(generator.every_card_kingdom())

		self.supply = cp.CardPile()
		self.supply.combine(self.base_supply)
		self.supply.combine(self.kingdom)
		for x in self.kingdom.unique_cards():
			x.on_supply_init()

		#dictionary of card title => price modifier for that card
		self.price_modifier = {}
		for x in self.supply.unique_cards():
			self.price_modifier[x.title] = 0

		#record of game announcements for public viewing / archiving
		self.game_log = []
Ejemplo n.º 22
0
    def test_inn_gain(self):
        tu.print_test_header("test Inn on gain")
        village = base.Village(self.game, self.player1)
        moat = base.Moat(self.game, self.player1)
        copper = supply_cards.Copper(self.game, self.player1)
        self.player1.discard_pile = [village, moat, copper]

        self.player1.gain('Inn')
        self.assertTrue(self.player1.last_mode["mode"] == "select")
        self.assertTrue("Village" in self.player1.last_mode["select_from"])
        self.assertTrue("Moat" in self.player1.last_mode["select_from"])
        self.assertTrue("Inn" in self.player1.last_mode["select_from"])
        self.assertTrue("Copper" not in self.player1.last_mode["select_from"])
        yield tu.send_input(self.player1, "post_selection",
                            ["Village", "Moat", "Inn"])
        self.assertTrue(self.player1.discard_pile == [copper])
        self.assertTrue(village in self.player1.deck)
        self.assertTrue(moat in self.player1.deck)
Ejemplo n.º 23
0
	def test_Tribute(self):
		tu.print_test_header("test Tribute")
		tribute = intrigue.Tribute(self.game, self.player1)
		tu.add_many_to_hand(self.player1, tribute, 2)
		copper = supply_cards.Copper(self.game, self.player2)
		great_hall = intrigue.Great_Hall(self.game, self.player2)
		swindler = intrigue.Swindler(self.game, self.player2)

		self.player2.deck.append(copper)
		self.player2.deck.append(copper)
		self.player2.deck.append(great_hall)
		self.player2.deck.append(swindler)

		cards_in_hand = len(self.player1.hand.card_array())
		tribute.play()
		self.assertTrue(self.player1.actions == 4)
		self.assertTrue(len(self.player2.discard_pile) == 2)

		tribute.play()
		self.assertTrue(self.player1.balance == 2)
Ejemplo n.º 24
0
	def test_Coppersmith_Throne_Room(self):
		tu.print_test_header("test Coppersmith Throne Room")
		coppersmith = intrigue.Coppersmith(self.game, self.player1)
		throneroom = base.Throne_Room(self.game, self.player1)
		copper = supply_cards.Copper(self.game, self.player1)
		self.player1.hand.add(coppersmith)
		self.player1.hand.add(throneroom)
		self.player1.hand.add(copper)

		throneroom.play()
		yield tu.send_input(self.player1, "post_selection", ["Coppersmith"])
		copper.play()
		self.assertTrue(self.player1.balance == 3)
		#we played throne room, coppersmith, copper
		self.assertTrue(len(self.player1.played_cards) == 3)
		self.player1.end_turn()
		self.assertTrue(copper.value == 1)
		#make sure we only have 1 coppersmith in our deck
		coppersmiths = [x for x in self.player1.all_cards() if x.title == "Coppersmith"]
		self.assertTrue(len(coppersmiths) == 1)
Ejemplo n.º 25
0
	def test_Torturer(self):
		tu.print_test_header("test Torturer")
		torturer = intrigue.Torturer(self.game, self.player1)
		tu.add_many_to_hand(self.player1, torturer, 2)
		copper = supply_cards.Copper(self.game, self.player2)
		estate = supply_cards.Estate(self.game, self.player2)
		tu.set_player_hand(self.player2, [copper, copper, copper, estate, estate])
		self.player1.actions = 2
		tu.send_input(self.player1, "play", "Torturer")
		# choosing to discard 2
		yield tu.send_input(self.player2, "post_selection", ["Discard 2 cards"])
		yield tu.send_input(self.player2, "post_selection", ["Copper", "Copper"])
		yield tu.send_input(self.player3, "post_selection", ["Gain a Curse"])
		self.assertTrue(self.player2.last_mode["mode"] != "wait")
		self.assertTrue(self.player3.last_mode["mode"] != "wait")
		self.assertTrue(len(self.player2.hand) == 3)

		tu.send_input(self.player1, "play", "Torturer")
		yield tu.send_input(self.player2, "post_selection", ["Gain a Curse"])
		yield tu.send_input(self.player3, "post_selection", ["Gain a Curse"])
		self.assertTrue(self.player2.hand.get_count('Curse') == 1)
Ejemplo n.º 26
0
    def test_Thief_2_treasures(self):
        tu.print_test_header("test Thief on 2 treasures")
        thief_card = base.Thief(self.game, self.player1)
        self.player1.hand.add(thief_card)
        self.player2.deck.append(supply_cards.Copper(self.game, self.player2))
        self.player2.deck.append(supply_cards.Silver(self.game, self.player2))
        select_trash_future = gen.Future()
        select_gain_future = gen.Future()
        self.player1.select = unittest.mock.MagicMock(
            side_effect=[select_trash_future, select_gain_future])
        self.player1.gain = unittest.mock.Mock(return_value=gen.Future())

        thief_card.play()

        self.player1.select.assert_called_with(1, 1, ["Silver", "Copper"],
                                               unittest.mock.ANY)
        select_trash_future.set_result(["Silver"])
        yield gen.moment
        self.assertTrue(self.game.trash_pile[-1].title == "Silver")
        select_gain_future.set_result(["Yes"])
        yield gen.moment
        self.player1.gain.assert_called_with("Silver", False)
Ejemplo n.º 27
0
	def test_Saboteur(self):
		tu.print_test_header("test Saboteur")
		saboteur = intrigue.Saboteur(self.game, self.player1)
		steward = intrigue.Steward(self.game, self.player2)
		copper = supply_cards.Copper(self.game, self.player2)

		self.player2.deck.append(steward)
		self.player2.deck.append(copper)
		player3_decksize = len(self.player3.deck)

		saboteur.play()

		yield tu.send_input(self.player2, "selectSupply", ["Curse"])

		self.assertTrue(self.player2.discard_pile.pop().title == "Curse")
		self.assertTrue(self.player2.discard_pile.pop().title == "Copper")
		self.assertTrue(len(self.player3.deck) == 0)
		self.assertTrue(player3_decksize == len(self.player3.discard_pile))
		self.player2.deck.append(steward)
		saboteur.play()
		yield tu.send_input(self.player2, "selectSupply", ["None"])
		self.assertTrue(len(self.player2.discard_pile) == 0)
Ejemplo n.º 28
0
	def test_Steward(self):
		tu.print_test_header("test Steward")
		steward = intrigue.Steward(self.game, self.player1)
		steward2 = intrigue.Steward(self.game, self.player1)
		steward3 = intrigue.Steward(self.game, self.player1)

		copper = supply_cards.Copper(self.game, self.player1)
		estate = supply_cards.Estate(self.game, self.player1)
		tu.clear_player_hand(self.player1)
		tu.add_many_to_hand(self.player1, steward, 3)
		tu.add_many_to_hand(self.player1, copper, 3)
		tu.add_many_to_hand(self.player1, estate, 2)

		self.player1.actions = 5
		# +$2
		steward.play()
		yield tu.send_input(self.player1, "post_selection", ["+$2"])
		self.assertTrue(self.player1.balance == 2)

		# Trash 2 with more than 2 in hand
		steward2.play()
		trash_size = len(self.game.trash_pile)
		yield tu.send_input(self.player1, "post_selection", ["Trash 2 cards from hand"])
		yield tu.send_input(self.player1, "post_selection", ["Estate", "Estate"])
		self.assertTrue(len(self.game.trash_pile) == trash_size + 2)

		# Trash 2 with homogeneous hand
		steward3.play()
		yield tu.send_input(self.player1, "post_selection", ["Trash 2 cards from hand"])
		self.assertTrue(self.player1.hand.get_count("Copper") == 1)

		self.player1.hand.add(steward)

		# Trash 2 with 1 in hand
		self.player1.hand.data["Steward"] = [intrigue.Steward(self.game, self.player1)]
		steward.play()
		yield tu.send_input(self.player1, "post_selection", ["Trash 2 cards from hand"])
		self.assertTrue(len(self.player1.hand) == 0)
Ejemplo n.º 29
0
    def test_Trade_Route(self):
        tu.print_test_header("test Trade Route")
        trade_route = prosperity.Trade_Route(self.game, self.player1)
        copper = supply_cards.Copper(self.game, self.player1)
        tu.set_player_hand(self.player1,
                           [trade_route, copper, copper, copper, copper])
        trade_route2 = prosperity.Trade_Route(self.game, self.player2)
        self.player2.hand.add(trade_route2)

        self.assertTrue(self.player1.buys == 1)
        trade_route.play()
        self.assertTrue(self.player1.buys == 2)
        self.assertTrue(self.player1.balance == 0)
        yield tu.send_input(self.player1, "post_selection", ["Copper"])
        self.player1.spend_all_money()
        #buy 2 estates
        tu.send_input(self.player1, "buyCard", "Estate")
        tu.send_input(self.player1, "buyCard", "Estate")
        self.player1.end_turn()

        trade_route2.play()
        yield tu.send_input(self.player2, "post_selection", ["Copper"])
        self.assertTrue(self.player2.balance == 1)
        self.assertTrue(self.player2.buys == 2)
Ejemplo n.º 30
0
	def test_Scout_entire_deck(self):
		tu.print_test_header("test Scout entire deck")
		scout = intrigue.Scout(self.game, self.player1)
		self.player1.deck = [supply_cards.Copper(self.game, self.player1) for x in range(0,3)] 
		scout.play()
		self.assertTrue(len(self.player1.deck) == 3)