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")
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")
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)
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)