def test_load_exceptions(self, data_folder, upload):
     remove(upload.path)
     with raises(IOError):
         Upload.load(data_folder, USER_ID, upload.id)
     remove(join(upload.folder, 'name.txt'))
     with raises(IOError):
         Upload.load(data_folder, USER_ID, upload.id)
 def test_spawn_random_folder(self, data_folder):
     with raises(BadPath):
         Upload.spawn_folder(data_folder, ID_LENGTH, owner_id='../1')
     folder = Upload.spawn_folder(data_folder, ID_LENGTH, USER_ID)
     assert len(basename(folder)) == ID_LENGTH
     assert basename(dirname(folder)) == str(USER_ID)
     folder = Upload.spawn_folder(data_folder, ID_LENGTH)
     assert len(basename(folder)) == ID_LENGTH
     assert basename(dirname(folder)) == 'anonymous'
 def test_spawn_enumerated_folder(self, data_folder):
     with raises(IOError):
         Upload.spawn_folder(data_folder, owner_id='../1')
     folder = Upload.spawn_folder(data_folder, owner_id=USER_ID)
     assert basename(folder) == '1'
     assert basename(dirname(folder)) == str(USER_ID)
     folder = Upload.spawn_folder(data_folder)
     assert basename(folder) == '1'
     assert basename(dirname(folder)) == 'anonymous'
 def test_get_from(self, config, uploads_request, upload):
     config.testing_securitypolicy(userid=USER_ID, permissive=False)
     with raises(HTTPBadRequest):
         Upload.get_from(uploads_request)
     uploads_request.params['upload_id'] = 'x'
     with raises(HTTPNotFound):
         Upload.get_from(uploads_request)
     uploads_request.params['upload_id'] = upload.id
     x = Upload.get_from(uploads_request)
     assert x.name == upload.name
     assert x.path == upload.path
 def test_save_from(self, uploads_request):
     param_name = 'files[]'
     with raises(HTTPBadRequest):
         Upload.save_from(uploads_request, param_name)
     uploads_request.POST[param_name] = 'x'
     with raises(HTTPBadRequest):
         Upload.save_from(uploads_request, param_name)
     uploads_request.POST[param_name] = prepare_field_storage(NAME, CONTENT)
     x = Upload.save_from(uploads_request, param_name)
     assert x.name == NAME
     assert open(x.path, 'rt').read() == CONTENT
Пример #6
0
 def test_accept_upload_id(
         self, result_request, tool_definition, data_folder):
     tool_definition['argument_names'] = ('x_path',)
     # Prepare upload_folder
     upload = Upload(id='xyz', owner_id=0)
     upload_folder = make_folder(upload.get_folder(data_folder))
     open(join(upload_folder, 'raw.txt'), 'wt')
     open(join(upload_folder, 'name.txt'), 'wt')
     # Use bad upload_id
     raw_arguments = {'x': 'a'}
     with raises(HTTPBadRequest) as e:
         result_request.prepare_arguments(tool_definition, raw_arguments)
     assert e.value.detail['x'] == 'invalid'
     # Use upload_id that does not have expected data_type
     raw_arguments = {'x': 'xyz'}
     with raises(HTTPBadRequest) as e:
         result_request.prepare_arguments(tool_definition, raw_arguments)
     assert e.value.detail['x'] == 'invalid'
     # Use upload_id that has expected data_type
     file_name = StringType.get_file_name()
     open(join(upload_folder, file_name), 'wt').write('whee')
     result = result_request.prepare_arguments(
         tool_definition, raw_arguments)
     assert open(result.arguments['x_path']).read() == 'whee'
Пример #7
0
 def test_accept_upload_id(self, result_request, tool_definition,
                           data_folder):
     tool_definition['argument_names'] = ('x_path', )
     # Prepare upload_folder
     upload = Upload(id='xyz', owner_id=0)
     upload_folder = make_folder(upload.get_folder(data_folder))
     open(join(upload_folder, 'raw.txt'), 'wt')
     open(join(upload_folder, 'name.txt'), 'wt')
     # Use bad upload_id
     raw_arguments = {'x': 'a'}
     with raises(HTTPBadRequest) as e:
         result_request.prepare_arguments(tool_definition, raw_arguments)
     assert e.value.detail['x'] == 'invalid'
     # Use upload_id that does not have expected data_type
     raw_arguments = {'x': 'xyz'}
     with raises(HTTPBadRequest) as e:
         result_request.prepare_arguments(tool_definition, raw_arguments)
     assert e.value.detail['x'] == 'invalid'
     # Use upload_id that has expected data_type
     file_name = StringType.get_file_name()
     open(join(upload_folder, file_name), 'wt').write('whee')
     result = result_request.prepare_arguments(tool_definition,
                                               raw_arguments)
     assert open(result.arguments['x_path']).read() == 'whee'
Пример #8
0
 def assert_upload(self, request):
     request.POST['files[]'] = prepare_field_storage(NAME, CONTENT)
     d = receive_file(request)
     upload = Upload.get_from(request, d['upload_id'])
     assert upload.name == NAME
     assert open(upload.path, 'rt').read() == CONTENT
def upload(data_folder):
    return Upload.save(data_folder, USER_ID, ID_LENGTH, NAME, CONTENT)
 def test_get_folder(self, data_folder):
     record_id = 100
     with raises(BadPath):
         Upload(id=record_id, owner_id='../1').get_folder(data_folder)
     folder = Upload(id=record_id, owner_id=USER_ID).get_folder(data_folder)
     assert basename(folder) == str(record_id)
 def test_get_user_folder(self, data_folder):
     with raises(BadPath):
         Upload.get_user_folder(data_folder, owner_id='../1')
     user_folder = Upload.get_user_folder(data_folder, USER_ID)
     assert basename(user_folder) == str(USER_ID)
 def test_spawn(self, data_folder):
     x = Upload.spawn(data_folder, owner_id=USER_ID)
     assert basename(x.folder) == '1'
     assert basename(dirname(x.folder)) == str(USER_ID)
     assert x.owner_id == USER_ID
 def test_save(self, data_folder):
     x = Upload.save(data_folder, USER_ID, ID_LENGTH, NAME, CONTENT)
     assert x.name == NAME
     assert open(x.path, 'rt').read() == CONTENT