Ejemplo n.º 1
0
    def test_achievements_list(self):
        response = self.app.post(
            '/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81/increment',
            data=dict(steps=10))
        self.assertEqual(200, response.status_code)

        response = self.app.get('/achievements?sort=order')
        self.assertEqual(200, response.status_code)
        result, errors = AchievementSchema().loads(
            response.get_data(as_text=True), many=True)

        self.assertEqual(57, len(result))
        self.assertEqual('c6e6039f-c543-424e-ab5f-b34df1336e81',
                         result[0]['id'])
        self.assertEqual('Novice', result[0]['name'])
        self.assertEqual('Play 10 games', result[0]['description'])
        self.assertEqual('REVEALED', result[0]['initial_state'])
        self.assertEqual('INCREMENTAL', result[0]['type'])
        self.assertEqual(10, result[0]['total_steps'])
        self.assertEqual(
            "http://content.faforever.com/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81.png",
            result[0]['revealed_icon_url'])
        self.assertEqual(
            "http://content.faforever.com/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81.png",
            result[0]['unlocked_icon_url'])
        self.assertEqual(1, result[0]['unlockers_count'])
        self.assertEqual(100.00, result[0]['unlockers_percent'])
        self.assertGreaterEqual(0, result[0]['unlockers_min_duration'])
        self.assertGreaterEqual(0, result[0]['unlockers_avg_duration'])
        self.assertGreaterEqual(0, result[0]['unlockers_max_duration'])
Ejemplo n.º 2
0
def achievements_get(achievement_id):
    """
    Gets an achievement definition.

    **Example Request**:

    .. sourcecode:: http

       GET /achievement/02081bb0-3b7a-4a36-99ef-5ae5d92d7146

    **Example Response**:

    .. sourcecode:: http

        HTTP/1.1 200 OK
        Vary: Accept
        Content-Type: text/javascript

        {
          "data": {
            "attributes": {
              "description": "Kill your enemy in a ranked 1v1 game in under 15 minutes",
              "experience_points": 10,
              "id": "02081bb0-3b7a-4a36-99ef-5ae5d92d7146",
              "initial_state": "REVEALED",
              "name": "Rusher",
              "revealed_icon_url": "http://content.faforever.com/achievements/02081bb0-3b7a-4a36-99ef-5ae5d92d7146.png",
              "total_steps": null,
              "type": "STANDARD",
              "unlocked_icon_url": "http://content.faforever.com/achievements/02081bb0-3b7a-4a36-99ef-5ae5d92d7146.png"
            },
            "id": "02081bb0-3b7a-4a36-99ef-5ae5d92d7146",
            "type": "achievement"
          }
        }


    :query string language: The preferred language to use for strings returned by this method. default is en.
    :query string region: The preferred region to use for strings returned by this method. default is US.
    :status 200: No error
    :status 404: achievement
    """
    language = request.args.get('language', 'en')
    region = request.args.get('region', 'US')

    return fetch_data(AchievementSchema(),
                      ACHIEVEMENTS_TABLE,
                      ACHIEVEMENT_SELECT_EXPRESSIONS,
                      MAX_PAGE_SIZE,
                      request,
                      where='ach.id = %(id)s',
                      args={
                          'id': achievement_id,
                          'language': language,
                          'region': region
                      },
                      many=False)
Ejemplo n.º 3
0
def achievements_list():
    """
    Lists all achievement definitions.

    **Example Request**:

    .. sourcecode:: http

       GET /achievements

    **Example Response**:

    .. sourcecode:: http

        HTTP/1.1 200 OK
        Vary: Accept
        Content-Type: text/javascript

        {
          "data": [
            {
              "attributes": {
                "description": "Kill your enemy in a ranked 1v1 game in under 15 minutes",
                "experience_points": 10,
                "id": "02081bb0-3b7a-4a36-99ef-5ae5d92d7146",
                "initial_state": "REVEALED",
                "name": "Rusher",
                "revealed_icon_url": "http://content.faforever.com/achievements/02081bb0-3b7a-4a36-99ef-5ae5d92d7146.png",
                "total_steps": null,
                "type": "STANDARD",
                "unlocked_icon_url": "http://content.faforever.com/achievements/02081bb0-3b7a-4a36-99ef-5ae5d92d7146.png",
                "unlockers_count": 416,
                "unlockers_percent": 0.49,
                "unlockers_min_duration": 1000,
                "unlockers_avg_duration": 2000,
                "unlockers_max_duration": 3000
              },
              "id": "02081bb0-3b7a-4a36-99ef-5ae5d92d7146",
              "type": "achievement"
            },
            ...
          ]
        }


    :query string language: The preferred language to use for strings returned by this method. default is en.
    :query string region: The preferred region to use for strings returned by this method. default is US.
    :status 200: No error
    """
    language = request.args.get('language', 'en')
    region = request.args.get('region', 'US')
    sort = request.args.get('sort', 'order')

    return fetch_data(AchievementSchema(), ACHIEVEMENTS_TABLE, ACHIEVEMENT_SELECT_EXPRESSIONS, MAX_PAGE_SIZE, request,
                      args={'language': language, 'region': region}, sort=sort)
Ejemplo n.º 4
0
    def test_achievements_get(self):
        response = self.app.get('/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81')
        self.assertEqual(200, response.status_code)
        result, errors = AchievementSchema().loads(response.get_data(as_text=True))

        self.assertEqual('c6e6039f-c543-424e-ab5f-b34df1336e81', result['id'])
        self.assertEqual('Novice', result['name'])
        self.assertEqual('Play 10 games', result['description'])
        self.assertEqual('REVEALED', result['initial_state'])
        self.assertEqual('INCREMENTAL', result['type'])
        self.assertEqual(10, result['total_steps'])
        self.assertEqual("http://content.faforever.com/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81.png", result['revealed_icon_url'])
        self.assertEqual("http://content.faforever.com/achievements/c6e6039f-c543-424e-ab5f-b34df1336e81.png", result['unlocked_icon_url'])