"""Functional tests for bulk_delete_samples_by_tuids handler.""" import json from backend.models import track_sample as samples_model from tests.testutils import db def test_bulk_delete_samples_tuids_missing(client, mocker): """Test bulk_delete_samples_by_tuids when no tuids are provided.""" endpoint = '/track/samples' expected = { 'code': 'validation_error', 'message': 'Field `tuids` is required'} actual_response = client.delete(endpoint) assert actual_response.status_code == 400 response_json = json.loads(actual_response.data.decode()) assert response_json == expected @db.test_schema def test_bulk_delete_samples_valid_tuids(client): """Test bulk_delete_samples_by_tuids with tuids having samples.""" tuids = [1, 2, 3, 4] for tuid in tuids: db.seed_track_sample_tables(tuid) # before delete samples_data = samples_model.get_track_samples(tuid) assert len(samples_data.message) == 1 endpoint = '/track/samples?tuids={}'.format(','.join( (str(v) for v in tuids))) actual_response = client.delete(endpoint) assert actual_response.status_code == 200 # after delete for tuid in tuids: samples_data = samples_model.get_track_samples(tuid) assert len(samples_data.message) == 0