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()
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()
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)
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)
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())
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)
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)
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())
def test_corporation_speculation(self): """ Task should be called """ self.c.set_market_assets(50) 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)
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)
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)
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)
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)
def test_max_corporation_speculation_amount_in_multiple_instance(self): """ Can't speculate more than influence * MAX_AMOUNT_SPECULATION, even with many speculations """ o = CorporationSpeculationOrder( player=self.p, corporation=self.c2, rank=1, investment=self.p.influence.level * CorporationSpeculationOrder.MAX_AMOUNT_SPECULATION / 2 + 1, ) # assertNoRaises o.clean() o.save() o2 = CorporationSpeculationOrder( player=self.p, corporation=self.c2, rank=1, investment=self.p.influence.level * CorporationSpeculationOrder.MAX_AMOUNT_SPECULATION / 2, ) self.assertRaises(OrderNotAvailable, o2.clean)
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)