Skip to content
Snippets Groups Projects
test_openbis.py 5.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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'
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    
    
    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
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    
    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')
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    
    
        # 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
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    
    
        # analysis.save     # start registering process