-
Chandrasekhar Ramakrishnan authoredChandrasekhar Ramakrishnan authored
test_openbis.py 5.31 KiB
import json
import pytest
import time
from pybis import DataSet
from pybis import Openbis
def test_token(openbis_instance):
assert openbis_instance.hostname is not None
new_instance = Openbis(openbis_instance.url, verify_certificates=openbis_instance.verify_certificates)
new_instance.login('admin', 'any_test_password')
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
invalid_connection = Openbis(openbis_instance.url, verify_certificates=openbis_instance.verify_certificates)
with pytest.raises(Exception):
invalid_connection.login('invalid_username', 'invalid_password')
assert invalid_connection.token is None
assert invalid_connection.is_token_valid() is False
def test_create_sample(openbis_instance):
testname = time.strftime('%a_%y%m%d_%H%M%S').upper()
s = openbis_instance.new_sample(sample_name=testname, space_name='TEST', sample_type="UNKNOWN")
assert s is not None
assert s.ident == '/TEST/' + testname
s2 = openbis_instance.get_sample(s.permid)
assert s2 is not None
def test_cached_token(openbis_instance):
openbis_instance.save_token()
assert openbis_instance.token_path is not None
assert openbis_instance._get_cached_token() is not None
another_instance = Openbis(openbis_instance.url, verify_certificates=openbis_instance.verify_certificates)
assert another_instance.is_token_valid() is True
openbis_instance.delete_token()
assert openbis_instance._get_cached_token() is None
def test_get_sample_by_id(openbis_instance):
ident = '/TEST/TEST-SAMPLE-2-CHILD-1'
sample = openbis_instance.get_sample(ident)
assert sample is not None
assert sample.ident == ident
assert sample.permid == '20130415095823341-405'
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 sample.parents is not None
assert sample.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 sample.children is not None
assert sample.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 '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')
# ds = openbis_instance.new_dataset(
# name = "My Dataset",
# description = "description",
# type = "UNKNOWN",
# sample = sample,
# files = ["testfile.txt"],
# )
# analysis = openbis_instance.new_analysis(
# name = "My analysis", # * name of the container
# description = "a description", #
# sample = sample, # my_dataset.sample is the default
# # result files will be registered as JUPYTER_RESULT datatype
# result_files = ["my_wonderful_result.txt"], # path of my results
# # jupyter notebooks file will be registered as JUPYTER_NOTEBOOk datatype
# notebook_files = ["notebook.ipynb"], # specify a specific notebook
# #notebook_files = "~/notebooks/", # path of notebooks
# parents = [parent_dataset], # other parents are optional, my_dataset is the default parent
# )
# analysis.save # start registering process