def test_extraction_interception(self): """ Intercepted extraction does not change corporation assets """ begin_assets_target = self.eo.target_corporation.assets begin_assets_kidnapper = self.eo.kidnapper_corporation.assets po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.EXTRACTION, hidden_percents=10, ) po.save() self.eo.additional_percents = 10 self.eo.save() self.eo.resolve() self.assertEqual( self.reload(self.eo.target_corporation).assets, begin_assets_target) self.assertEqual( self.reload(self.eo.kidnapper_corporation).assets, begin_assets_kidnapper)
def test_get_protection_values(self): """ Protection values should include Protection runs. """ dso = DataStealOrder( stealer_corporation=self.c2, player=self.p, target_corporation=self.c, additional_percents=7, ) dso.save() self.assertEqual(dso.get_protection_values(), [dso.target_corporation.base_corporation.datasteal]) po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.DATASTEAL, hidden_percents=10, ) po.save() self.assertEqual(dso.get_protection_values(), [ po.get_success_probability(), dso.target_corporation.base_corporation.datasteal ])
def test_mdc_CCIB_line_negative_effects(self): """ Test what happens when the CCIB party line is chosen to players who voted for transparency """ self.set_turn_line(MDCVoteOrder.CCIB, MDCVoteOrder.CCIB, MDCVoteOrder.TRAN) self.g.resolve_current_turn() # Player 3 has voted transparency, so he shouldn't be able to have a protection run po = ProtectionOrder( player=self.p3, protected_corporation=self.c, defense=ProtectionOrder.SABOTAGE, ) self.assertRaises(OrderNotAvailable, po.clean) # Player 1 still can po2 = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.SABOTAGE, ) po2.clean()
def test_has_base_value(self): """ Protection has defaut protection values """ po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.DATASTEAL, additional_percents=1, ) po.save() self.assertEqual( po.get_success_probability(), po.additional_percents * 10 + po.BASE_SUCCESS_PROBABILITY[po.defense])
def test_protection_run_task(self): """ Check the task solves the run """ po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.SABOTAGE, ) po.clean() po.save() po.additional_percents = 10 po.save() self.g.resolve_current_turn() self.assertEqual( self.reload(self.p).money, self.INITIAL_MONEY - po.get_cost())
def test_sabotage_interception(self): """ Intercepted sabotage does not change corporation assets """ begin_assets = self.so.target_corporation.assets po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.SABOTAGE, hidden_percents=10, ) po.clean() po.save() self.so.additional_percents = 10 self.so.save() self.so.resolve() self.assertEqual( self.reload(self.so.target_corporation).assets, begin_assets)
def test_datasteal_interception(self): """ Intercepted datasteal should not change corporation assets. """ begin_assets_stealer = self.dso.stealer_corporation.assets po = ProtectionOrder(player=self.p, protected_corporation=self.c, defense=ProtectionOrder.DATASTEAL) po.clean() po.save() po.additional_percents = 10 po.save() self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual( self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer)