def delete_follow(db_conn, id_): """ Remove a follow from the database. """ query = """ DELETE FROM follows WHERE id = %(id)s; """ params = { 'id': convert_slug_to_uuid(id_), } return delete_row(db_conn, query, params)
def remove_user_subject(db_conn, user_id, subject_id): """ Remove a subject from a user's list of subjects. """ query = """ DELETE FROM users_subjects WHERE user_id = %(user_id)s AND subject_id = %(subject_id)s; """ params = { 'user_id': convert_slug_to_uuid(user_id), 'subject_id': convert_slug_to_uuid(subject_id), } errors = delete_row(db_conn, query, params) return errors
def delete_user(db_conn, user_id): """ Delete a user. """ query = """ DELETE FROM users WHERE id = %(id)s; """ params = { 'id': user_id, } errors = delete_row(db_conn, query, params) if not errors: es.delete( index='entity', doc_type='user', id=convert_uuid_to_slug(user_id), ) return errors
def test_delete_row(db_conn, session): params = { 'id': convert_slug_to_uuid(user_id), } def get(): query = """ SELECT * FROM users WHERE id = %(id)s LIMIT 1; """ result = get_row(db_conn, query, params) return result assert get() query = """ DELETE FROM users WHERE id = %(id)s; """ errors = delete_row(db_conn, query, params) assert not errors assert not get()
'settings': { 'email_frequency': 'daily', 'view_subjects': 'public', 'view_follows': 'public', }, }] raw_insert_users(db_conn, users) # We have to translate the sample IDs to UUIDs entity_ids_lookup = {} # Dropping foreign key checks so the ordering doesn't matter. query = """ ALTER TABLE units DISABLE TRIGGER ALL; """ delete_row(db_conn, query, {}) for sample_id, unit_data in sample_data['units'].items(): unit_data['version_id'] = uuid.uuid4() if sample_id in entity_ids_lookup: unit_data['entity_id'] = entity_ids_lookup[sample_id] else: unit_data['entity_id'] = entity_ids_lookup[sample_id] = uuid.uuid4() u_require_ids = [] for id_ in unit_data['require_ids']: if id_ not in entity_ids_lookup: entity_ids_lookup[id_] = uuid.uuid4() u_require_ids.append(entity_ids_lookup[id_]) unit_data['require_ids'] = u_require_ids
def test_delete_row_error(db_conn): query = "a;" params = {} errors = delete_row(db_conn, query, params) assert errors