def test_bombs_disable_production(self): team_factory = Factory(0, 1, 3, 10, (0, 0)) team_factory.bombs_arriving = 1 team_factory.resolve_bombs() # Bomb a factory again while producing again_bombed = Factory(0, -1, 3, 10, (0, 0)) again_bombed.bombs_arriving = 1 again_bombed.resolve_bombs() # Disable neutral factory then take it over captured_factory = Factory(0, 0, 3, 10, (0, 0)) captured_factory.bombs_arriving = 1 captured_factory.resolve_bombs() for i in range(5): team_factory.produce() captured_factory.produce() again_bombed.produce() self.assertEqual(0, team_factory.stock) self.assertEqual(4-i, team_factory.disabled_turns) self.assertEqual(0, again_bombed.stock) self.assertEqual(0, captured_factory.stock) self.assertEqual(4-i, captured_factory.disabled_turns) # Captured here if i == 2: captured_factory.team = -1 again_bombed.bombs_arriving = 1 again_bombed.resolve_bombs() team_factory.produce() self.assertEqual(3, team_factory.stock) captured_factory.produce() self.assertEqual(3, captured_factory.stock) again_bombed.produce() self.assertEqual(0, again_bombed.stock) self.assertEqual(2, again_bombed.disabled_turns)