def test_get_file(user: User, object: Object, tmpdir): files.FILE_STORAGE_PATH = tmpdir assert files.get_file_for_object(object_id=object.object_id, file_id=0) is None assert len(files.get_files_for_object(object_id=object.object_id)) == 0 files.create_local_file(object_id=object.object_id, user_id=user.id, file_name="test.png", save_content=lambda stream: None) assert len(files.get_files_for_object(object_id=object.object_id)) == 1 assert files.get_file_for_object(object_id=object.object_id, file_id=0) is not None
def test_file_information(user: User, object: Object, tmpdir): files.FILE_STORAGE_PATH = tmpdir assert len(files.get_files_for_object(object_id=object.object_id)) == 0 files.create_local_file(object_id=object.object_id, user_id=user.id, file_name="test.png", save_content=lambda stream: stream.write(b"1")) file = files.get_file_for_object(object.object_id, 0) assert file.title == file.original_file_name assert file.description is None files.update_file_information(object_id=object.object_id, file_id=file.id, user_id=user.id, title='Title', description='') file = files.get_file_for_object(object.object_id, 0) assert file.title == 'Title' assert file.description is None assert len(file.log_entries) == 1 log_entry = file.log_entries[0] assert log_entry.type == files.FileLogEntryType.EDIT_TITLE assert log_entry.data == {'title': 'Title'} files.update_file_information(object_id=object.object_id, file_id=file.id, user_id=user.id, title='Title', description='Description') file = files.get_file_for_object(object.object_id, 0) assert file.title == 'Title' assert file.description == 'Description' assert len(file.log_entries) == 2 log_entry = file.log_entries[1] assert log_entry.type == files.FileLogEntryType.EDIT_DESCRIPTION assert log_entry.data == {'description': 'Description'} files.update_file_information(object_id=object.object_id, file_id=file.id, user_id=user.id, title='', description='Description') file = files.get_file_for_object(object.object_id, 0) assert file.title == file.original_file_name assert file.description == 'Description' assert len(file.log_entries) == 3 log_entry = file.log_entries[2] assert log_entry.type == files.FileLogEntryType.EDIT_TITLE assert log_entry.data == {'title': file.original_file_name} with pytest.raises(files.FileDoesNotExistError): files.update_file_information(object_id=object.object_id, file_id=file.id + 1, user_id=user.id, title='Title', description='Description') assert len(file.log_entries) == 3
def get(self, object_id: int, file_id: int): try: file_info = get_file_for_object(object_id=object_id, file_id=file_id) if file_info is None: raise errors.FileDoesNotExistError() except errors.FileDoesNotExistError: return { "message": "file {} of object {} does not exist".format( file_id, object_id) }, 404 if file_info.is_hidden: return { "message": "file {} of object {} has been hidden".format( file_id, object_id) }, 403 return file_info_to_json(file_info)