async def test_get_audio(): data = AudioFactory().build() await data.save() request_data = json.loads(data.json()) async with AsyncClient(app=app, base_url="http://test") as ac: path = f"/{data.audioFileType}/{data.audioFileMetadata.id}" response = await ac.get(path) assert response.status_code == 200 audio_id = ObjectId(response.json()['id']) created_audio = await Audio.find_by_id(data.audioFileType, audio_id) assert created_audio created_audio_json = json.loads(created_audio.json()) for key in request_data.keys(): assert request_data[key] == created_audio_json[key]
async def test_create_audio(): data = AudioFactory().build() request_data = json.loads(data.json()) async with AsyncClient(app=app, base_url="http://test") as ac: response = await ac.post("/", json=request_data) assert response.status_code == 200 audio_id = ObjectId(response.json()['id']) # import pudb; pudb.set_trace() created_audio = await Audio.find_by_id(data.audioFileType, audio_id) created_audio_json = json.loads(created_audio.json()) assert created_audio for key in request_data.keys(): if key == 'id': continue assert request_data[key] == created_audio_json[key]
async def test_delete_audio(): audio = AudioFactory().build() await audio.save() await Audio.delete_audio(audio.audioFileType, audio.audioFileMetadata.id) with pytest.raises(Exception): audio = await Audio.find_by_id(audio.audioFileType, audio.audioFileMetadata.id)
async def test_create_audio(): data = AudioFactory().build() await data.save() request_data = json.loads(AudioFactory().build().json()) async with AsyncClient(app=app, base_url="http://test") as ac: path = f"/{data.audioFileType}/{data.audioFileMetadata.id}" response = await ac.post(path, json=request_data) updated_audio = await Audio.find_by_id(data.audioFileType, data.audioFileMetadata.id) assert response.status_code == 200 updated_audio = await Audio.find_by_id(data.audioFileType, data.audioFileMetadata.id) updated_audio_json = json.loads(updated_audio.json()) for key in request_data.keys(): if key == 'id': continue assert request_data[key] == updated_audio_json[key]
async def test_delete_audio(): data = AudioFactory().build() await data.save() async with AsyncClient(app=app, base_url="http://test") as ac: path = f"/{data.audioFileType}/{data.audioFileMetadata.id}" response = await ac.delete(path) assert response.status_code == 200 with pytest.raises(HTTPException): await Audio.find_by_id(data.audioFileType, data.audioFileMetadata.id)
async def test_update_audio(): audio = AudioFactory().build() await audio.save() test_update_audio_data = AudioFactory( audioFileType=audio.audioFileType).build() await audio.update(test_update_audio_data) updated_audio = await Audio.find_by_id(audio.audioFileType, audio.audioFileMetadata.id) test_update_audio_data_dict = json.loads(test_update_audio_data.json()) updated_audio_dict = json.loads(audio.json()) for key in updated_audio_dict.keys(): if key == 'id': continue assert updated_audio_dict[key] == test_update_audio_data_dict[key]
async def test_unsaved_data(): audio = AudioFactory().build() with pytest.raises(Exception): await Audio.find_by_id(audio.audioFileType, audio.audioFileMetadata.id)
async def test_save(): audio = AudioFactory().build() await audio.save() audio = await Audio.find_by_id(audio.audioFileType, audio.audioFileMetadata.id) assert audio
def test_reject_audio_type_support(): with pytest.raises(ValueError): audio = AudioFactory().build() audio = Audio(audioFileType='a', audioFileMetadata=audio.audioFileMetadata)
def test_correct_audio(): audio = None audio = AudioFactory().build().dict() assert Audio(**audio)
async def test_save_and_find_audio(): audio = AudioFactory().build() await audio.save()