def test_create_retreat_for_must_retreat_piece(self): turn = models.Turn.objects.create( game=self.game, season=Season.SPRING, phase=Phase.RETREAT_AND_DISBAND, year=1900, current_turn=True, ) self.nation_state.turn = turn self.nation_state.save() territory_state = factories.TerritoryStateFactory( turn=turn, controlled_by=self.nation_state.nation, ) self.piece_state.turn = turn self.piece_state.must_retreat = True self.piece_state.save() territory = territory_state.territory self.data = { 'source': self.territory.id, 'target': territory.id, 'type': OrderType.RETREAT, } response = self.client.post(self.url, self.data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_create_order_no_orders_left_retreat_and_disband(self): models.Turn.objects.create( game=self.game, season=Season.SPRING, phase=Phase.RETREAT_AND_DISBAND, year=1900, current_turn=True, ) nation_state = factories.NationStateFactory( turn=self.game.get_current_turn(), user=self.user, ) territory_state = factories.TerritoryStateFactory( turn=self.game.get_current_turn(), controlled_by=nation_state.nation, ) models.PieceState.objects.all().delete() territory = territory_state.territory self.data = { 'source': self.territory.id, 'target': territory.id, 'type': OrderType.RETREAT, } response = self.client.post(self.url, self.data, format='json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_order_hold_during_retreat(self): models.Turn.objects.create( game=self.game, season=Season.SPRING, phase=Phase.RETREAT_AND_DISBAND, year=1900, current_turn=True, ) nation_state = factories.NationStateFactory( turn=self.game.get_current_turn(), user=self.user, ) territory_state = factories.TerritoryStateFactory( turn=self.game.get_current_turn(), controlled_by=nation_state.nation, ) self.territory = territory_state.territory response = self.client.post(self.url, self.data, format='json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_order_valid_over_writes(self): response = self.client.post(self.url, self.data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertTrue(models.Order.objects.get()) # object created territory_state = factories.TerritoryStateFactory( turn=self.turn, controlled_by=self.nation_state.nation, ) territory = territory_state.territory self.data = { 'source': self.territory.id, 'target': territory.id, 'type': OrderType.MOVE, } response = self.client.post(self.url, self.data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) order = models.Order.objects.get() self.assertEqual(order.type, OrderType.MOVE) self.assertEqual(order.target, territory)
def setUp(self): self.user = factories.UserFactory() self.variant = factories.VariantFactory() self.game = models.Game.objects.create( status=GameStatus.ACTIVE, variant=self.variant, name='Test Game', created_by=self.user, num_players=7 ) self.game.participants.add(self.user) turn = models.Turn.objects.create( game=self.game, year=1901, phase=Phase.ORDER, season=Season.SPRING, ) nation = models.Nation.objects.create( variant=self.game.variant, name='France', ) self.nation_state = models.NationState.objects.create( nation=nation, turn=turn, user=self.user, orders_finalized=True, ) territory_state = factories.TerritoryStateFactory( turn=self.game.get_current_turn(), controlled_by=self.nation_state.nation, ) self.territory = territory_state.territory self.url = reverse( 'toggle-finalize-orders', args=[self.nation_state.id] ) self.data = {}