import json from pybis import DataSet from pybis import Openbis from pybis import DataSetUpload def test_token(openbis_instance): assert openbis_instance.hostname is not None new_instance = Openbis(openbis_instance.url) new_instance.login() assert new_instance.token is not None assert new_instance.is_token_valid() is True new_instance.logout() assert new_instance.is_token_valid() is False openbis_instance.save_token() another_instance = Openbis(openbis_instance.url) assert another_instance.is_token_valid() is True def test_get_sample_by_id(openbis_instance): response = openbis_instance.get_sample('/TEST/TEST-SAMPLE-2-CHILD-1') assert response is not None assert response.ident == '/TEST/TEST-SAMPLE-2-CHILD-1' def test_get_sample_by_permid(openbis_instance): response = openbis_instance.get_sample('20130415091923485-402') assert response is not None assert response.permid == '20130415091923485-402' def test_get_sample_parents(openbis_instance): id = '/TEST/TEST-SAMPLE-2' sample = openbis_instance.get_sample(id) assert sample is not None assert 'parents' in sample.data assert 'identifier' in sample.data['parents'][0] assert sample.data['parents'][0]['identifier']['identifier'] == '/TEST/TEST-SAMPLE-2-PARENT' parents = sample.get_parents() assert isinstance(parents, list) assert parents[0].ident == '/TEST/TEST-SAMPLE-2-PARENT' def test_get_sample_children(openbis_instance): id = '/TEST/TEST-SAMPLE-2' sample = openbis_instance.get_sample(id) assert sample is not None assert 'children' in sample.data assert 'identifier' in sample.data['children'][0] assert sample.data['children'][0]['identifier']['identifier'] == '/TEST/TEST-SAMPLE-2-CHILD-1' children = sample.get_children() assert isinstance(children, list) assert children[0].ident == '/TEST/TEST-SAMPLE-2-CHILD-1' def test_get_dataset_parents(openbis_instance): permid = '20130415093804724-403' parent_permid = '20130415100158230-407' dataset = openbis_instance.get_dataset(permid) assert dataset is not None parents = dataset.get_parents() assert isinstance(parents, list) assert parents[0] is not None assert isinstance(parents[0], DataSet) assert parents[0].permid == parent_permid children = parents[0].get_children() assert isinstance(children, list) assert children[0] is not None assert isinstance(children[0], DataSet) def test_get_dataset_by_permid(openbis_instance): permid = '20130412142942295-198' permid = '20130412153118625-384' dataset = openbis_instance.get_dataset(permid) assert dataset is not None assert isinstance(dataset, DataSet) assert isinstance(dataset, Openbis) assert 'dataStore' in dataset.data assert 'downloadUrl' in dataset.data['dataStore'] file_list = dataset.get_file_list(recursive=False) assert file_list is not None assert isinstance(file_list, list) assert len(file_list) == 1 file_list = dataset.get_file_list(recursive=True) assert file_list is not None assert len(file_list) > 10 def test_dataset_upload(openbis_instance): datastores = openbis_instance.get_datastores() assert datastores is not None assert isinstance(datastores, list) filename = 'testfile.txt' with open(filename, 'w') as f: f.write('test-data') # parents are optional my_dataset.upload_analysis( name = "My analysis", # !mandatory; name of the container description = "a description", # optional sample = sample, # optional, my_dataset.sample is the default result_files = "~/my_wonderful_results/", # !mandatory; path of my results # result_files = ["~/my_result.csv"], # !mandatory, if no path was given result_recursive = True, # default; recursive search if a path was given result_file_match = "*", # default; match any file if a path was given notebook_files = "~/notebooks/", # optional, # notebook_files = ["notebook.ipynb"], # optional, specify a specific notebook # notebook_files = "~/notebooks" # one single path instead of a list parents = [parent_dataset1], # other parents are optional, my_dataset is the default parent )