示例#1
0
    def test_get_pieces_ignoring_some(self):
        game_type = GameType()

        self.assertIsNotNone(game_type.rules)

        pieces = get_pieces(game_type.rules, ['king', 'pawn'])['white']
        piece_names = ['rook', 'knight', 'bishop', 'queen']
        self.assertEqual(list(pieces.keys()), piece_names)
        for move in pieces['bishop']['moves']:
            self.assertIn('directions', move)
            self.assertIn('conditions', move)
示例#2
0
    def test_post_conditions_success(self):
        game_type = GameType(name="name", description="conditions")
        game_type.save()
        pk = game_type.id

        key = 'conditions'
        expected = ['doesnt_land_on_piece', 'directional', 'cant_jump_pieces']
        data = {'piece': 'king', 'index': '0', 'key': key, 'value': expected}

        url = reverse('chess-configuration-checkmark', args=[game_type.id])
        response = self.client.post(url, data=data)

        self.assertEqual(response.status_code, 200)

        game_type = GameType.objects.get(pk=pk)
        self.assertEqual(game_type.rules['pieces']['king']['moves'][0][key],
                         expected)

        game_type.delete()
示例#3
0
    def test_post_limits_unsupported_key(self):
        game_type = GameType(name="name", description="description")
        game_type.save()
        pk = game_type.id

        data = {
            'piece': 'king',
            'index': '0',
            'key': 'unsupported_key',
            'value': ['thor'],
        }

        url = reverse('chess-configuration-checkmark', args=[game_type.id])
        response = self.client.post(url, data=data)

        self.assertEqual(response.status_code, 400)

        game_type = GameType.objects.get(pk=pk)
        game_type.delete()
示例#4
0
    def test_post_directions_success_when_rules_is_empty(self):
        game_type = GameType(name="name", description="description", rules={})
        game_type.save()
        pk = game_type.id

        self.assertEqual(game_type.rules, {})

        key = 'directions'
        expected = ['vertical', 'horizontal']
        data = {'piece': 'king', 'index': '0', 'key': key, 'value': expected}

        url = reverse('chess-configuration-checkmark', args=[game_type.id])
        response = self.client.post(url, data=data)

        self.assertEqual(response.status_code, 200)

        game_type = GameType.objects.get(pk=pk)
        self.assertEqual(game_type.rules['pieces']['king']['moves'][0][key],
                         expected)

        game_type.delete()