Exemplo n.º 1
0
    def test_max_speculation(self):
        """
		Can't speculate more than influence
		"""
        self.p.influence.level = 1
        self.p.influence.save()

        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.c2,
                                        rank=1,
                                        investment=5)
        o.save()

        o2 = CorporationSpeculationOrder(player=self.p,
                                         corporation=self.c2,
                                         rank=1,
                                         investment=5)
        self.assertRaises(OrderNotAvailable, o2.clean)

        dso = DerivativeSpeculationOrder(
            player=self.p,
            speculation=DerivativeSpeculationOrder.UP,
            investment=DerivativeSpeculationOrder.MAX_AMOUNT_SPECULATION + 1)
        self.assertRaises(OrderNotAvailable, dso.clean)

        self.p.influence.level = 2
        self.p.influence.save()

        # assertNoRaises
        o2.clean()
Exemplo n.º 2
0
    def test_corporation_rank_limited(self):
        """
		Can't speculate on non existing rank
		"""
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.last_corporation,
                                        rank=self.g.corporation_set.count() +
                                        1,
                                        investment=5)

        self.assertRaises(OrderNotAvailable, o.clean)
Exemplo n.º 3
0
    def test_mdc_DERE_line_negative_effect(self):
        """
		Test what happens when the DERE party line is chosen for detractors
		"""

        self.set_turn_line(MDCVoteOrder.BANK, MDCVoteOrder.DERE,
                           MDCVoteOrder.DERE)
        self.g.resolve_current_turn()

        # Player 1 has voted BANK, so he shouldn't be able to speculate
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.c3,
                                        rank=1,
                                        investment=5)
        self.assertRaises(OrderNotAvailable, o.clean)

        # Check that player 3 still can
        o2 = CorporationSpeculationOrder(player=self.p3,
                                         corporation=self.c3,
                                         rank=1,
                                         investment=5)
        o2.clean()
Exemplo n.º 4
0
    def test_mdc_BANK_line_negative_effect(self):
        """
		Test what happens when BANK party line is chosen to people who voted deregulation
		"""

        self.set_turn_line(MDCVoteOrder.BANK, MDCVoteOrder.BANK,
                           MDCVoteOrder.DERE)
        self.g.resolve_current_turn()

        # Player 3 has voted DERE, so he shouldn't be able to speculate
        o = CorporationSpeculationOrder(player=self.p3,
                                        corporation=self.c3,
                                        rank=1,
                                        investment=1)
        self.assertRaises(OrderNotAvailable, o.clean)

        # Check that player 1 still can
        o2 = CorporationSpeculationOrder(player=self.p,
                                         corporation=self.c3,
                                         rank=1,
                                         investment=1)
        o2.clean()
Exemplo n.º 5
0
    def test_corporation_speculation_little_success_last_give_money(self):
        """
		Success when speculate on a last corpo should give money
		"""
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.last_corporation,
                                        rank=3,
                                        investment=5)
        o.save()

        o.resolve()

        self.assertEqual(
            self.reload(self.p).money, self.initial_money + o.get_cost() * 2)
Exemplo n.º 6
0
    def test_corporation_speculation_big_success_give_money(self):
        """
		Success when speculate on a non first/last corpo should give lots of money
		"""
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.medium_corporation,
                                        rank=2,
                                        investment=5)
        o.save()

        o.resolve()

        self.assertEqual(
            self.reload(self.p).money, self.initial_money + o.get_cost() * 4)
Exemplo n.º 7
0
    def test_corporation_speculation_order_cost_money(self):
        """
		Order should cost money
		"""
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.last_corporation,
                                        rank=1,
                                        investment=5)
        o.save()

        o.resolve()

        self.assertEqual(
            self.reload(self.p).money, self.initial_money - o.get_cost())
Exemplo n.º 8
0
    def test_corporation_speculation(self):
        """
		Task should be called
		"""
        self.c.assets = 50
        self.c.save()

        cso = CorporationSpeculationOrder(player=self.p,
                                          corporation=self.c,
                                          rank=1,
                                          investment=5)
        cso.save()

        self.g.resolve_current_turn()

        self.assertEqual(
            self.reload(self.p).money, self.initial_money + cso.get_cost() * 2)
Exemplo n.º 9
0
    def test_mdc_DERE_line_positive_effect(self):
        """
		Test what happens when the DERE party line is chosen for players who voted for it
		"""

        self.set_turn_line(MDCVoteOrder.BANK, MDCVoteOrder.DERE,
                           MDCVoteOrder.DERE)
        self.g.resolve_current_turn()

        o = CorporationSpeculationOrder(player=self.p2,
                                        corporation=self.c,
                                        rank=1,
                                        investment=5)
        o.save()

        o.resolve()
        self.assertEqual(o.on_win_ratio, 3)  # 2 + 1
        self.assertEqual(o.on_loss_ratio, 1)  # Default
        self.assertEqual(
            self.reload(self.p2).money, self.initial_money + o.investment * 3)
Exemplo n.º 10
0
    def test_max_corporation_speculation_amount(self):
        """
		can't speculate more than influence * MAX_AMOUNT_SPECULATION
		"""
        self.p.influence.level = 1
        self.p.influence.save()

        o = CorporationSpeculationOrder(
            player=self.p,
            corporation=self.c2,
            rank=1,
            investment=self.p.influence.level *
            CorporationSpeculationOrder.MAX_AMOUNT_SPECULATION + 1)
        self.assertRaises(OrderNotAvailable, o.clean)

        self.p.influence.level = 2
        self.p.influence.save()

        #assertNoRaises
        o.clean()
Exemplo n.º 11
0
    def test_mdc_BANK_line_positive_effect(self):
        """
		Test what happens when BANK party line is chosen to people who voted it
		"""

        self.set_turn_line(MDCVoteOrder.BANK, MDCVoteOrder.BANK,
                           MDCVoteOrder.DERE)
        self.c.update_assets(10)
        self.g.resolve_current_turn()

        # should fail, because c is first rank
        o = CorporationSpeculationOrder(player=self.p,
                                        corporation=self.c2,
                                        rank=1,
                                        investment=5)
        o.save()
        o.resolve()

        self.assertEqual(o.on_win_ratio, 2)  # Default
        self.assertEqual(o.on_loss_ratio, 0)  # 1 - 1
        self.assertEqual(self.reload(self.p).money, self.initial_money)