本文整理汇总了Python中synapseclient.utils.make_bogus_data_file函数的典型用法代码示例。如果您正苦于以下问题:Python make_bogus_data_file函数的具体用法?Python make_bogus_data_file怎么用?Python make_bogus_data_file使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了make_bogus_data_file函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_Entity
def test_Entity():
# Test CRUD on Entity objects, Project, Folder, File with createEntity/getEntity/updateEntity
project_name = str(uuid.uuid4())
project = Project(project_name, description='Bogus testing project')
project = syn.createEntity(project)
schedule_for_cleanup(project)
folder = Folder('Test Folder', parent=project, description='A place to put my junk', foo=1000)
folder = syn.createEntity(folder)
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
a_file = File(path, parent=folder, description='Random data for testing', foo='An arbitrary value', bar=[33,44,55], bday=Datetime(2013,3,15))
a_file = syn._createFileEntity(a_file)
## local object state should be preserved
assert a_file.path == path
## check the project entity
project = syn.getEntity(project)
assert project.name == project_name
## check the folder entity
folder = syn.getEntity(folder.id)
assert folder.name == 'Test Folder'
assert folder.parentId == project.id
assert folder.foo[0] == 1000
## check the file entity
a_file = syn.getEntity(a_file)
assert a_file['foo'][0] == 'An arbitrary value'
assert a_file['bar'] == [33,44,55]
assert a_file['bday'][0] == Datetime(2013,3,15)
## make sure file comes back intact
a_file = syn.downloadEntity(a_file)
assert filecmp.cmp(path, a_file.path)
#TODO We're forgotten the local file path
a_file.path = path
## update the file entity
a_file['foo'] = 'Another arbitrary chunk of text data'
a_file['new_key'] = 'A newly created value'
a_file = syn.updateEntity(a_file)
assert a_file['foo'][0] == 'Another arbitrary chunk of text data'
assert a_file['bar'] == [33,44,55]
assert a_file['bday'][0] == Datetime(2013,3,15)
assert a_file.new_key[0] == 'A newly created value'
assert a_file.path == path
## upload a new file
new_path = utils.make_bogus_data_file()
schedule_for_cleanup(new_path)
a_file = syn.uploadFile(a_file, new_path)
## make sure file comes back intact
a_file = syn.downloadEntity(a_file)
assert filecmp.cmp(new_path, a_file.path)
示例2: test_syncFromSynapse
def test_syncFromSynapse():
"""This function tests recursive download as defined in syncFromSynapse
most of the functionality of this function are already tested in the
tests/integration/test_command_line_client::test_command_get_recursive_and_query
which means that the only test if for path=None
"""
# Create a Project
project_entity = syn.store(synapseclient.Project(name=str(uuid.uuid4())))
schedule_for_cleanup(project_entity.id)
# Create a Folder in Project
folder_entity = syn.store(Folder(name=str(uuid.uuid4()), parent=project_entity))
# Create and upload two files in Folder
uploaded_paths = []
for i in range(2):
f = utils.make_bogus_data_file()
uploaded_paths.append(f)
schedule_for_cleanup(f)
file_entity = syn.store(File(f, parent=folder_entity))
#Add a file in the project level as well
f = utils.make_bogus_data_file()
uploaded_paths.append(f)
schedule_for_cleanup(f)
file_entity = syn.store(File(f, parent=project_entity))
### Test recursive get
output = synapseutils.syncFromSynapse(syn, project_entity)
assert len(output) == len(uploaded_paths)
for f in output:
print(f.path)
assert f.path in uploaded_paths
示例3: test_uploadFileEntity
def test_uploadFileEntity():
# Create a FileEntity
# Dictionaries default to FileEntity as a type
fname = utils.make_bogus_data_file()
schedule_for_cleanup(fname)
entity = {'name' : 'fooUploadFileEntity', \
'description' : 'A test file entity', \
'parentId' : project['id']}
entity = syn.uploadFile(entity, fname)
# Download and verify
entity = syn.downloadEntity(entity)
assert entity['files'][0] == os.path.basename(fname)
assert filecmp.cmp(fname, entity['path'])
# Check if we upload the wrong type of file handle
fh = syn.restGET('/entity/%s/filehandles' % entity.id)['list'][0]
assert fh['concreteType'] == 'org.sagebionetworks.repo.model.file.S3FileHandle'
# Create a different temporary file
fname = utils.make_bogus_data_file()
schedule_for_cleanup(fname)
# Update existing FileEntity
entity = syn.uploadFile(entity, fname)
# Download and verify that it is the same file
entity = syn.downloadEntity(entity)
assert entity['files'][0] == os.path.basename(fname)
assert filecmp.cmp(fname, entity['path'])
示例4: test_get_and_store_by_name_and_parent_id
def test_get_and_store_by_name_and_parent_id():
project = create_project()
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
f = File(path, name='Foobarbat', parent=project)
f2 = syn.store(f)
f = syn.get(f)
assert f.id == f2.id
assert f.name == f2.name
assert f.parentId == f2.parentId
## new file
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
## should create a new version of the previous File entity
f3 = File(path, name='Foobarbat', parent=project, description='banana', junk=1234)
f3 = syn.store(f3)
## should be an update of the existing entity with the same name and parent
assert f3.id == f.id
assert f3.description == 'banana'
assert f3.junk == [1234]
assert filecmp.cmp(path, f3.path)
示例5: test_uploadFileEntity
def test_uploadFileEntity():
projectEntity = create_project()
# Defaults to FileEntity
fname = utils.make_bogus_data_file()
entity = {'name' : 'foo', \
'description' : 'A test file entity', \
'parentId' : projectEntity['id']}
# Create new FileEntity
entity = syn.uploadFile(entity, fname)
# Download and verify
entity = syn.downloadEntity(entity)
assert entity['files'][0] == os.path.basename(fname)
assert filecmp.cmp(fname, entity['path'])
# Check if we upload the wrong type of file handle
fh = syn.restGET('/entity/%s/filehandles' % entity.id)['list'][0]
assert fh['concreteType'] == 'org.sagebionetworks.repo.model.file.S3FileHandle'
os.remove(fname)
# Create a different temporary file
fname = utils.make_bogus_data_file()
# Update existing FileEntity
entity = syn.uploadFile(entity, fname)
# Download and verify that it is the same filename
entity = syn.downloadEntity(entity)
print entity['files'][0]
print os.path.basename(fname)
assert entity['files'][0] == os.path.basename(fname)
assert filecmp.cmp(fname, entity['path'])
os.remove(fname)
示例6: test_wikiAttachment
def test_wikiAttachment():
# Upload a file to be attached to a Wiki
filename = utils.make_bogus_data_file()
attachname = utils.make_bogus_data_file()
schedule_for_cleanup(filename)
schedule_for_cleanup(attachname)
fileHandle = syn._uploadFileToFileHandleService(filename)
# Create and store a Wiki
# The constructor should accept both file handles and file paths
md = """
This is a test wiki
=======================
Blabber jabber blah blah boo.
"""
wiki = Wiki(owner=project, title='A Test Wiki', markdown=md,
fileHandles=[fileHandle['id']],
attachments=[attachname])
wiki = syn.store(wiki)
# Create a Wiki sub-page
subwiki = Wiki(owner=project, title='A sub-wiki',
markdown='nothing', parentWikiId=wiki.id)
subwiki = syn.store(subwiki)
# Retrieve the root Wiki from Synapse
wiki2 = syn.getWiki(project)
assert wiki == wiki2
# Retrieve the sub Wiki from Synapse
wiki2 = syn.getWiki(project, subpageId=subwiki.id)
assert subwiki == wiki2
# Try making an update
wiki['title'] = 'A New Title'
wiki['markdown'] = wiki['markdown'] + "\nNew stuff here!!!\n"
wiki = syn.store(wiki)
assert wiki['title'] == 'A New Title'
assert wiki['markdown'].endswith("\nNew stuff here!!!\n")
# Check the Wiki's metadata
headers = syn.getWikiHeaders(project)
assert headers['totalNumberOfResults'] == 2
assert headers['results'][0]['title'] in (wiki['title'], subwiki['title'])
# # Retrieve the file attachment
# tmpdir = tempfile.mkdtemp()
# file_props = syn._downloadWikiAttachment(project, wiki,
# os.path.basename(filename), dest_dir=tmpdir)
# path = file_props['path']
# assert os.path.exists(path)
# assert filecmp.cmp(original_path, path)
# Clean up
# syn._deleteFileHandle(fileHandle)
syn.delete(wiki)
syn.delete(subwiki)
assert_raises(SynapseHTTPError, syn.getWiki, project)
示例7: test_command_line_store_and_submit
def test_command_line_store_and_submit():
"""Test command line client store command."""
## Create a project
output = run('synapse store --name "%s" --description "test of store command" --type Project' % str(str(uuid.uuid4())))
project_id = parse(r'Created entity:\s+(syn\d+)\s+', output)
schedule_for_cleanup(project_id)
## Create and upload a file
filename = utils.make_bogus_data_file()
schedule_for_cleanup(filename)
output = run('synapse store --name "BogusFileEntity" --description "Bogus data to test file upload" --parentid %s --file %s' % (project_id, filename))
file_entity_id = parse(r'Created entity:\s+(syn\d+)\s+', output)
## Verify that we stored the file in Synapse
f1 = syn.get(file_entity_id)
fh = syn._getFileHandle(f1.dataFileHandleId)
assert fh['concreteType'] == 'org.sagebionetworks.repo.model.file.S3FileHandle'
## Create an Evaluation to submit to
eval = synapseclient.evaluation.Evaluation(name=str(str(uuid.uuid4())), contentSource=project_id)
eval = syn.store(eval)
syn.addEvaluationParticipant(eval)
## Submit a bogus file
output = run('synapse submit --evaluation %s --name Some random name --entity %s' %(eval.id, file_entity_id))
submission_id = parse(r'Submitted \(id: (\d+)\) entity:\s+', output)
## Update the file
filename = utils.make_bogus_data_file()
schedule_for_cleanup(filename)
output = run('synapse store --id %s --file %s' % (file_entity_id, filename,))
updated_entity_id = parse(r'Updated entity:\s+(syn\d+)', output)
## Tests shouldn't have external dependencies, but here it's required
ducky_url = 'http://upload.wikimedia.org/wikipedia/commons/9/93/Rubber_Duck.jpg'
## Test external file handle
## This time, omit the quotation marks
output = run('synapse store --name Rubber Ducky --description I like rubber duckies --parentid %s --file %s' % (project_id, ducky_url))
exteral_entity_id = parse(r'Created entity:\s+(syn\d+)\s+', output)
## Verify that we created an external file handle
f2 = syn.get(exteral_entity_id)
fh = syn._getFileHandle(f2.dataFileHandleId)
assert fh['concreteType'] == 'org.sagebionetworks.repo.model.file.ExternalFileHandle'
## Delete project
output = run('synapse delete %s' % project_id)
示例8: test_walk
def test_walk():
walked = []
firstfile = utils.make_bogus_data_file()
schedule_for_cleanup(firstfile)
project_entity = syn.store(Project(name=str(uuid.uuid4())))
schedule_for_cleanup(project_entity.id)
folder_entity = syn.store(Folder(name=str(uuid.uuid4()), parent=project_entity))
schedule_for_cleanup(folder_entity.id)
second_folder = syn.store(Folder(name=str(uuid.uuid4()), parent=project_entity))
schedule_for_cleanup(second_folder.id)
file_entity = syn.store(File(firstfile, parent=project_entity))
schedule_for_cleanup(file_entity.id)
walked.append(((project_entity.name,project_entity.id),
[(folder_entity.name, folder_entity.id),
(second_folder.name, second_folder.id)],
[(file_entity.name, file_entity.id)]))
nested_folder = syn.store(Folder(name=str(uuid.uuid4()), parent=folder_entity))
schedule_for_cleanup(nested_folder.id)
secondfile = utils.make_bogus_data_file()
schedule_for_cleanup(secondfile)
second_file = syn.store(File(secondfile, parent=nested_folder))
schedule_for_cleanup(second_file.id)
thirdfile = utils.make_bogus_data_file()
schedule_for_cleanup(thirdfile)
third_file = syn.store(File(thirdfile, parent=second_folder))
schedule_for_cleanup(third_file.id)
walked.append(((os.path.join(project_entity.name,folder_entity.name),folder_entity.id),
[(nested_folder.name,nested_folder.id)],
[]))
walked.append(((os.path.join(os.path.join(project_entity.name,folder_entity.name),nested_folder.name),nested_folder.id),
[],
[(second_file.name,second_file.id)]))
walked.append(((os.path.join(project_entity.name,second_folder.name),second_folder.id),
[],
[(third_file.name,third_file.id)]))
temp = synu.walk(syn, project_entity.id)
temp = list(temp)
#Must sort the tuples returned, because order matters for the assert
#Folders are returned in a different ordering depending on the name
for i in walked:
for x in i:
if type(x) == list:
x = x.sort()
for i in temp:
assert i in walked
print("CHECK: Cannot synu.walk a file returns empty generator")
temp = synu.walk(syn, second_file.id)
assert list(temp) == []
示例9: test_command_get_recursive_and_query
def test_command_get_recursive_and_query():
"""Tests the 'synapse get -r' and 'synapse get -q' functions"""
# Create a Project
project_entity = syn.store(synapseclient.Project(name=str(uuid.uuid4())))
schedule_for_cleanup(project_entity.id)
# Create a Folder in Project
folder_entity = syn.store(synapseclient.Folder(name=str(uuid.uuid4()),
parent=project_entity))
# Create and upload two files in Folder
uploaded_paths = []
for i in range(2):
f = utils.make_bogus_data_file()
uploaded_paths.append(f)
schedule_for_cleanup(f)
file_entity = synapseclient.File(f, parent=folder_entity)
file_entity.location = 'folder'
file_entity = syn.store(file_entity)
#Add a file in the project level as well
f = utils.make_bogus_data_file()
uploaded_paths.append(f)
schedule_for_cleanup(f)
file_entity = synapseclient.File(f, parent=project_entity)
file_entity.location = 'project'
file_entity = syn.store(file_entity)
### Test recursive get
output = run('synapse', '--skip-checks',
'get', '-r',
project_entity.id)
#Verify that we downloaded files:
new_paths = [os.path.join('.', folder_entity.name, os.path.basename(f)) for f in uploaded_paths[:-1]]
new_paths.append(os.path.join('.', os.path.basename(uploaded_paths[-1])))
schedule_for_cleanup(folder_entity.name)
for downloaded, uploaded in zip(new_paths, uploaded_paths):
print uploaded, downloaded
assert os.path.exists(downloaded)
assert filecmp.cmp(downloaded, uploaded)
schedule_for_cleanup(new_paths[0])
### Test query get
output = run('synapse', '--skip-checks',
'get', '-q', "select id from file where parentId=='%s' and location=='folder'" %
folder_entity.id)
#Verify that we downloaded files:
new_paths = [os.path.join('.', os.path.basename(f)) for f in uploaded_paths[:-1]]
for downloaded, uploaded in zip(new_paths, uploaded_paths[:-1]):
print uploaded, downloaded
assert os.path.exists(downloaded)
assert filecmp.cmp(downloaded, uploaded)
schedule_for_cleanup(downloaded)
示例10: test_command_copy
def test_command_copy():
"""Tests the 'synapse cp' function"""
# Create a Project
project_entity = syn.store(synapseclient.Project(name=str(uuid.uuid4())))
schedule_for_cleanup(project_entity.id)
# Create a Folder in Project
folder_entity = syn.store(synapseclient.Folder(name=str(uuid.uuid4()),
parent=project_entity))
# Create and upload a file in Folder
dummy = utils.make_bogus_data_file()
schedule_for_cleanup(dummy)
dummy_entity = syn.store(synapseclient.File(dummy, parent=folder_entity))
repo_url = 'https://github.com/Sage-Bionetworks/synapsePythonClient'
annots = {'test':'hello_world'}
# Create, upload, and set annotations on a file in Folder
filename = utils.make_bogus_data_file()
schedule_for_cleanup(filename)
file_entity = syn.store(synapseclient.File(filename, parent=folder_entity),used=dummy_entity.id,executed=repo_url)
syn.setAnnotations(file_entity,annots)
### Test cp function
output = run('synapse', '--skip-checks',
'cp', '--id',file_entity.id,
'--parentid',project_entity.id)
copied_id = parse(r'Copied syn\d+ to (syn\d+)',output)
#Verify that our copied files are identical
copied_ent = syn.get(copied_id)
schedule_for_cleanup(copied_id)
copied_ent_annot = syn.getAnnotations(copied_ent)
copied_annot = dict((key,copied_ent_annot[key].pop()) for key in copied_ent_annot if key not in ('uri','id','creationDate','etag'))
copied_prov = syn.getProvenance(copied_ent)['used'][0]['reference']['targetId']
assert copied_prov == file_entity.id
assert copied_annot == annots
#Verify that errors are being thrown when folders/projects are attempted to be copied,
#or file is copied to a foler/project that has a file with the same filename
assert_raises(ValueError,run, 'synapse', '--debug', '--skip-checks',
'cp', '--id',folder_entity.id,
'--parentid',project_entity.id)
assert_raises(ValueError,run, 'synapse', '--debug', '--skip-checks',
'cp', '--id',project_entity.id,
'--parentid',project_entity.id)
assert_raises(ValueError,run, 'synapse', '--debug', '--skip-checks',
'cp', '--id',file_entity.id,
'--parentid',project_entity.id)
示例11: test_get_local_file
def test_get_local_file():
"""Tests synapse.get() with local a local file """
new_path = utils.make_bogus_data_file()
schedule_for_cleanup(new_path)
folder = Folder('TestFindFileFolder', parent=project, description='A place to put my junk')
folder = syn.createEntity(folder)
#Get an nonexistent file in Synapse
assert_raises(SynapseError, syn.get, new_path)
#Get a file really stored in Synapse
ent_folder = syn.store(File(new_path, parent=folder))
ent2 = syn.get(new_path)
assert ent_folder.id==ent2.id and ent_folder.versionNumber==ent2.versionNumber
#Get a file stored in Multiple locations #should display warning
ent = syn.store(File(new_path, parent=project))
ent = syn.get(new_path)
#Get a file stored in multiple locations with limit set
ent = syn.get(new_path, limitSearch=folder.id)
assert ent.id == ent_folder.id and ent.versionNumber==ent_folder.versionNumber
#Get a file that exists but such that limitSearch removes them and raises error
assert_raises(SynapseError, syn.get, new_path, limitSearch='syn1')
示例12: test_synapseStore_flag
def test_synapseStore_flag():
# Store a path to a local file
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
bogus = File(path, name='Totally bogus data', parent=project, synapseStore=False)
bogus = syn.store(bogus)
# Verify the thing can be downloaded as a URL
bogus = syn.get(bogus, downloadFile=False)
assert bogus.name == 'Totally bogus data'
assert bogus.path == path, "Path: %s\nExpected: %s" % (bogus.path, path)
assert bogus.synapseStore == False
# Make sure the test runs on Windows and other OS's
if path[0].isalpha() and path[1]==':':
# A Windows file URL looks like this: file:///c:/foo/bar/bat.txt
expected_url = 'file:///' + path
else:
expected_url = 'file://' + path
assert bogus.externalURL == expected_url, 'URL: %s\nExpected %s' % (bogus.externalURL, expected_URL)
# A file path that doesn't exist should still work
bogus = File('/path/to/local/file1.xyz', parentId=project.id, synapseStore=False)
bogus = syn.store(bogus)
assert_raises(IOError, syn.get, bogus)
assert bogus.synapseStore == False
# Try a URL
bogus = File('http://dev-versions.synapse.sagebase.org/synapsePythonClient', parent=project, synapseStore=False)
bogus = syn.store(bogus)
bogus = syn.get(bogus)
assert bogus.synapseStore == False
示例13: test_slow_unlocker
def test_slow_unlocker():
"""Manually grabs a lock and makes sure the get/store methods are blocked."""
# Make a file to manually lock
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
contention = File(path, parent=syn.test_parent)
contention = syn.store(contention)
# Lock the Cache Map
cacheDir = cache.determine_cache_directory(contention)
cache.obtain_lock_and_read_cache(cacheDir)
# Start a few calls to get/store that should not complete yet
store_thread = wrap_function_as_child_thread(lambda: store_catch_412_HTTPError(contention))
get_thread = wrap_function_as_child_thread(lambda: syn.get(contention))
thread.start_new_thread(store_thread, ())
thread.start_new_thread(get_thread, ())
time.sleep(min(5, cache.CACHE_LOCK_TIME / 2))
# Make sure the threads did not finish
assert syn.test_threadsRunning > 0
cache.write_cache_then_release_lock(cacheDir)
# Let the threads go
while syn.test_threadsRunning > 0:
time.sleep(1)
collect_errors_and_fail()
示例14: test_download_table_files
def test_download_table_files():
cols = [
Column(name='artist', columnType='STRING', maximumSize=50),
Column(name='album', columnType='STRING', maximumSize=50),
Column(name='year', columnType='INTEGER'),
Column(name='catalog', columnType='STRING', maximumSize=50),
Column(name='cover', columnType='FILEHANDLEID')]
schema = syn.store(Schema(name='Jazz Albums', columns=cols, parent=project))
schedule_for_cleanup(schema)
data = [["John Coltrane", "Blue Train", 1957, "BLP 1577", "coltraneBlueTrain.jpg"],
["Sonny Rollins", "Vol. 2", 1957, "BLP 1558", "rollinsBN1558.jpg"],
["Sonny Rollins", "Newk's Time", 1958, "BLP 4001", "rollinsBN4001.jpg"],
["Kenny Burrel", "Kenny Burrel", 1956, "BLP 1543", "burrellWarholBN1543.jpg"]]
## upload files and store file handle ids
original_files = []
for row in data:
path = utils.make_bogus_data_file()
original_files.append(path)
schedule_for_cleanup(path)
file_handle = syn._chunkedUploadFile(path)
row[4] = file_handle['id']
row_reference_set = syn.store(RowSet(columns=cols, schema=schema, rows=[Row(r) for r in data]))
## retrieve the files for each row and verify that they are identical to the originals
results = syn.tableQuery('select artist, album, year, catalog, cover from %s'%schema.id, resultsAs="rowset")
for i, row in enumerate(results):
print "%s_%s" % (row.rowId, row.versionNumber), row.values
file_info = syn.downloadTableFile(results, rowId=row.rowId, versionNumber=row.versionNumber, column='cover', downloadLocation='.')
assert filecmp.cmp(original_files[i], file_info['path'])
schedule_for_cleanup(file_info['path'])
示例15: test_uploadFile_given_dictionary
def test_uploadFile_given_dictionary():
# Make a Folder Entity the old fashioned way
folder = {'concreteType': Folder._synapse_entity_type,
'parentId' : project['id'],
'name' : 'fooDictionary',
'foo' : 334455}
entity = syn.store(folder)
# Download and verify that it is the same file
entity = syn.get(entity)
assert entity.parentId == project.id
assert entity.foo[0] == 334455
# Update via a dictionary
path = utils.make_bogus_data_file()
schedule_for_cleanup(path)
rareCase = {}
rareCase.update(entity.annotations)
rareCase.update(entity.properties)
rareCase.update(entity.local_state())
rareCase['description'] = 'Updating with a plain dictionary should be rare.'
# Verify it works
entity = syn.store(rareCase)
assert entity.description == rareCase['description']
assert entity.name == 'fooDictionary'
entity = syn.get(entity['id'])