def test_users_list_users(self):
        users = db_users.list_users()
        self.assertEqual(len(users), 3)

        users = db_users.list_users(0, 10)
        self.assertEqual(len(users), 0)

        db_users.get_or_create(4, "user_1", new_user_data={
            "display_name": "test2",
        })
        users = db_users.list_users(1, 1)
        self.assertEqual(len(users), 1)
        self.assertEqual(users[0]['display_name'], "test1")
Exemple #2
0
    def test_users_list_users(self):
        users = db_users.list_users()
        self.assertEqual(len(users), 3)

        users = db_users.list_users(0, 10)
        self.assertEqual(len(users), 0)

        user3 = db_users.get_or_create("user_1",
                                       new_user_data={
                                           "display_name": "test2",
                                       })
        users = db_users.list_users(1, 1)
        self.assertEqual(len(users), 1)
        self.assertEqual(users[0]['display_name'], "test1")
Exemple #3
0
def review_list_handler():
    """Get list of users.

    **Request Example:**

    .. code-block:: bash

        $ curl "https://critiquebrainz.org/ws/1/user/?offset=10&limit=3" \\
               -X GET

    **Response Example:**

    .. code-block:: json

        {
          "count": 925,
          "limit": 3,
          "offset": 10,
          "users": [
            {
              "created": "Wed, 07 May 2014 14:46:58 GMT",
              "display_name": "Display Name",
              "id": "b291a99b-7bb0-4531-ba45-f6cfb4d944de",
              "karma": 0,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:46:59 GMT",
              "display_name": "Name comes here",
              "id": "a52e1629-a516-43c2-855f-bb195aeb2a33",
              "karma": 3,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:47:00 GMT",
              "display_name": "Display Name",
              "id": "1fb36917-d4d3-411b-82c4-901d949e17b8",
              "karma": 0,
              "user_type": "Noob"
            }
          ]
        }

    :query limit: results limit, min is 0, max is 50, default is 50 **(optional)**
    :query offset: result offset, default is 0 **(optional)**

    :resheader Content-Type: *application/json*
    """
    def fetch_params():
        limit = Parser.int('uri', 'limit', min=1, max=50, optional=True) or 50
        offset = Parser.int('uri', 'offset', optional=True) or 0
        return limit, offset

    limit, offset = fetch_params()
    users = db_users.list_users(limit, offset)
    users = [User(user) for user in users]
    return jsonify(limit=limit,
                   offset=offset,
                   count=len(users),
                   users=[p.to_dict() for p in users])
def import_musicbrainz_row_ids():
    fix_exceptions()
    import_count = 0
    already_imported = 0
    deleted = 0
    not_found = 0

    all_users = db_users.list_users()
    musicbrainz_users = [
        x for x in all_users if x['musicbrainz_username'] is not None
    ]
    with musicbrainz_db.engine.connect() as mb_connection:
        with db.engine.connect() as connection:
            for user in musicbrainz_users:
                if user.get('musicbrainz_row_id') is not None:
                    already_imported += 1
                    continue

                name = user.get('musicbrainz_username')
                r = mb_connection.execute(
                    text("""
                    SELECT id
                      FROM editor
                     WHERE name = :musicbrainz_id
                    """), {
                        'musicbrainz_id': user['musicbrainz_username'],
                    })
                musicbrainz_row_id = None
                if r.rowcount > 0:
                    musicbrainz_row_id = r.fetchone()['id']
                    print('found %s - %s!!!!!!!!!!!!!!!!!!!' %
                          (name, musicbrainz_row_id))
                    import_count += 1
                    if not DRY_RUN:
                        connection.execute(
                            text("""
                            UPDATE "user"
                               SET musicbrainz_row_id = :musicbrainz_row_id
                             WHERE id = :id
                            """), {
                                'musicbrainz_row_id': musicbrainz_row_id,
                                'id': user['id'],
                            })
                else:
                    print('%s not found!' % name)
                    not_found += 1
                    if not DRY_RUN:
                        print('Deleting user %s' %
                              user['musicbrainz_username'])
                        db_users.delete(user['id'])
                        deleted += 1

    print('Total number of CB users: %d' % len(all_users))
    print('Total number of CB users with MusicBrainz usernames: %d' %
          len(musicbrainz_users))
    print('Total number of CB users with already imported row IDs: %d' %
          already_imported)
    print('Total number of CB users with row IDs that can be imported: %d' %
          import_count)
    print('Total number of CB users not found and deleted: %d' % not_found)
Exemple #5
0
def review_list_handler():
    """Get list of users.

    **Request Example:**

    .. code-block:: bash

        $ curl "https://critiquebrainz.org/ws/1/user/?offset=10&limit=3" \\
               -X GET

    **Response Example:**

    .. code-block:: json

        {
          "count": 925,
          "limit": 3,
          "offset": 10,
          "users": [
            {
              "created": "Wed, 07 May 2014 14:46:58 GMT",
              "display_name": "Display Name",
              "id": "b291a99b-7bb0-4531-ba45-f6cfb4d944de",
              "karma": 0,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:46:59 GMT",
              "display_name": "Name comes here",
              "id": "a52e1629-a516-43c2-855f-bb195aeb2a33",
              "karma": 3,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:47:00 GMT",
              "display_name": "Display Name",
              "id": "1fb36917-d4d3-411b-82c4-901d949e17b8",
              "karma": 0,
              "user_type": "Noob"
            }
          ]
        }

    :query limit: results limit, min is 0, max is 50, default is 50 **(optional)**
    :query offset: result offset, default is 0 **(optional)**

    :resheader Content-Type: *application/json*
    """
    def fetch_params():
        limit = Parser.int('uri', 'limit', min=1, max=50, optional=True) or 50
        offset = Parser.int('uri', 'offset', optional=True) or 0
        return limit, offset

    limit, offset = fetch_params()
    users = db_users.list_users(limit, offset)
    users = [User(user) for user in users]
    return jsonify(limit=limit, offset=offset, count=len(users),
                   users=[p.to_dict() for p in users])
def import_musicbrainz_row_ids():
    fix_exceptions()
    import_count = 0
    already_imported = 0
    deleted = 0
    not_found = 0

    all_users = db_users.list_users()
    musicbrainz_users = [x for x in all_users if x['musicbrainz_username'] is not None]
    with musicbrainz_db.engine.connect() as mb_connection:
        with db.engine.connect() as connection:
            for user in musicbrainz_users:
                if user.get('musicbrainz_row_id') is not None:
                    already_imported += 1
                    continue

                name = user.get('musicbrainz_username')
                r = mb_connection.execute(text("""
                    SELECT id
                      FROM editor
                     WHERE name = :musicbrainz_id
                    """), {
                        'musicbrainz_id': user['musicbrainz_username'],
                    })
                musicbrainz_row_id = None
                if r.rowcount > 0:
                    musicbrainz_row_id = r.fetchone()['id']
                    print('found %s - %s!!!!!!!!!!!!!!!!!!!' % (name, musicbrainz_row_id))
                    import_count += 1
                    if not DRY_RUN:
                        connection.execute(text("""
                            UPDATE "user"
                               SET musicbrainz_row_id = :musicbrainz_row_id
                             WHERE id = :id
                            """), {
                                'musicbrainz_row_id': musicbrainz_row_id,
                                'id': user['id'],
                            })
                else:
                    print('%s not found!' % name)
                    not_found += 1
                    if not DRY_RUN:
                        print('Deleting user %s' % user['musicbrainz_username'])
                        db_users.delete(user['id'])
                        deleted += 1

    print('Total number of CB users: %d' % len(all_users))
    print('Total number of CB users with MusicBrainz usernames: %d' % len(musicbrainz_users))
    print('Total number of CB users with already imported row IDs: %d' % already_imported)
    print('Total number of CB users with row IDs that can be imported: %d' % import_count)
    print('Total number of CB users not found and deleted: %d' % not_found)