Пример #1
0
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
Пример #2
0
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
Пример #3
0
 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)