示例#1
0
def test_nested():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    assert len(test.items) == 2
    test.items[1].name = 'hello'
    orig_sub_version = test.items[1].unique_id
    assert len(test.items) == 2
    mo.store(test)
    assert test.items[1].unique_id == orig_sub_version
示例#2
0
def test_unique_links():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    sub_version = test.items[1].unique_id
    test.items = [test.items[1]]
    mo.store(test)

    test.items = []
    test = mo.retrieve('group', unique_id=test.unique_id)[0]
    assert len(test.items) == 1, len(test.items)
    assert test.items[0].unique_id == sub_version
示例#3
0
def test_glob_query():
    test1 = mo.LcmsRun(name='First')
    test2 = mo.LcmsRun(name='Second')
    test3 = mo.LcmsRun(name='Third')
    mo.store([test1, test2, test3])
    items = mo.retrieve('lcmsrun', name='Fir%')
    assert items[-1].unique_id == test1.unique_id
    items = mo.retrieve('lcmsrun', name='%econd')
    assert items[-1].unique_id == test2.unique_id
    items = mo.retrieve('LcmsRuns', name='T%ir%')
    assert items[-1].unique_id == test3.unique_id
示例#4
0
def test_circular_reference():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    orig_id = test.unique_id
    test.items[0].items.append(test)
    mo.store(test)
    test.items = []
    test = mo.retrieve('group', unique_id=test.unique_id)[0]
    sub0 = test.items[0]
    assert len(sub0.items) == 2, sub0.items
    assert sub0.items[1].unique_id == orig_id
    assert test.unique_id == orig_id
def test_preserve_provenance():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    test2 = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    mo.store([test, test2])
    assert len(test.items) == 2
    test.items = []
    test2.items = []
    mo.store([test, test2])
    assert len(test.items) == 0
    previous = mo.retrieve('group', unique_id=test.prev_uid)[0]
    assert len(previous.items) == 2, repr(previous)
示例#6
0
def test_clone():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    test2 = test.clone()
    assert test2.unique_id != test.unique_id
    assert test2.prev_uid == test.unique_id
    assert test2.items[0].unique_id == test.items[0].unique_id

    test3 = test.clone(True)
    assert test3.unique_id != test.unique_id
    assert test3.prev_uid == test.unique_id
    assert test3.items[0].unique_id != test.items[0].unique_id
    assert test3.items[0].prev_uid == test.items[0].unique_id
示例#7
0
def test_retrieve_head():
    test = mo.LcmsRun(name='foo')
    mo.store(test)
    old = len(mo.retrieve('lcmsrun', name='foo'))
    test.description = 'bar'
    mo.store(test)
    new = len(mo.retrieve('lcmsrun', name='foo'))
    assert new == old
示例#8
0
def test_simple_query():
    test1 = mo.LcmsRun(name='First')
    first_version = test1.unique_id
    test1.description = "Hey there"
    mo.store(test1)
    assert test1.unique_id == first_version
    items = mo.retrieve('lcmsrun', name='First')
    assert items[-1].unique_id == test1.unique_id
    assert all([i.unique_id != first_version for i in items[:-1]])
示例#9
0
def test_recover():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    test.name = 'howdy'
    top_version = test.unique_id
    sub_version = test.items[1].unique_id

    mo.store(test)
    mo.store(test)  # should have no effect
    assert len(test.items) == 2
    assert test.unique_id == top_version

    # make sure we can recover the previous version
    test.items = []
    assert test.unique_id == top_version
    test = mo.retrieve('group', unique_id=top_version)[0]
    assert test.unique_id == top_version
    assert len(test.items) == 2, len(test.items)
    assert test.unique_id == top_version
    assert test.items[1].unique_id == sub_version
示例#10
0
def test_user_preserve():
    run = mo.LcmsRun(username='******')
    test = mo.Reference(name='hello', username='******', lcms_run=run)
    orig_id = test.unique_id
    mo.store(test, _override=True)
    assert test.unique_id == orig_id
    mo.store(test)
    assert test.unique_id != orig_id
    items = mo.retrieve('reference', username='******', name='hello')
    username = getpass.getuser()
    assert items[-2].username == 'foo'
    assert items[-1].username == username
    assert items[-2].lcms_run.username == 'foo'
    assert items[-1].lcms_run.username == 'foo'
    run.name = 'hello'
    mo.store(test)
    items = mo.retrieve('reference',
                        username='******',
                        creation_time=test.creation_time)
    return
    assert items[0].lcms_run.username == 'foo'
    assert items[1].lcms_run.username == username
示例#11
0
def test_escape_glob():
    test1 = mo.LcmsRun(description='Flow %')
    mo.store(test1)
    items = mo.retrieve('lcmsrun', description='Flow %%')
    assert items[-1].unique_id == test1.unique_id
示例#12
0
def test_stub_instance():
    run = mo.LcmsRun(username='******')
    test = mo.Reference(name='hello', lcms_run=run)
    mo.store(test)
    item = mo.retrieve('reference', name='hello')[0]
    assert isinstance(item.lcms_run, mo.LcmsRun)
示例#13
0
def test_store_stubs():
    test = mo.Group(items=[mo.Group(items=[mo.LcmsRun()]), mo.LcmsRun()])
    mo.store(test)
    test = mo.retrieve('group', unique_id=test.unique_id)[0]
    assert isinstance(test.items[0], mo.Group)
    mo.store(test)