Exemplo n.º 1
0
def test_childs_added_on_stage():
    res_0, res_1 = [create_resource(str(n)) for n in range(2)]
    ModelMeta.save_all_lazy()
    for res in (res_0, res_1):
        change.create_run(res)
    res_0.connect(res_1, {'a': 'a'})
    change.staged_log()
    ModelMeta.save_all_lazy()
    change.commit_all()
    res_0.update({'a': '10'})
    ModelMeta.save_all_lazy()
    staged_log = change.staged_log()
    assert len(staged_log) == 2
    child_log_item = next(li for li in staged_log
                          if li.resource == res_1.name)
    assert child_log_item.action == 'update'
Exemplo n.º 2
0
def test_only_relevant_child_updated():
    res1, res2, res3 = (
        create_resource(
            name, inputs={'a': '', 'b': ''}) for name in ('t1', 't2', 't3'))
    res1.update({'a': '9', 'b': '10'})
    res1.connect(res2, {'a': 'a'})
    res1.connect(res3, {'b': 'b'})
    ModelMeta.save_all_lazy()
    # currently childs added as a side effect of staged log, thus we need
    # to run it before commiting changes
    assert set(s.resource for s in change.staged_log()) == {'t1', 't2', 't3'}
    change.commit_all()
    res1.update({'a': '12'})
    ModelMeta.save_all_lazy()
    # t3 not updated because "a" connected only to t2
    assert set(s.resource for s in change.staged_log()) == {'t1', 't2'}
Exemplo n.º 3
0
def test_discard_removed_with_childs_not_affected():
    res1, res2, res3 = (
        create_resource(
            name, inputs={'a': '', 'b': ''}) for name in ('t1', 't2', 't3'))
    res1.update({'a': '9', 'b': '10'})
    res1.connect(res2, {'a': 'a'})
    res1.connect(res3, {'b': 'b'})
    ModelMeta.save_all_lazy()
    change.staged_log()
    change.commit_all()
    res1.remove()
    ModelMeta.save_all_lazy()
    staged_items = change.staged_log()
    assert len(staged_items) == 1
    assert staged_items[0].log_action == 't1.remove'
    change.discard_all()
    assert not res1.to_be_removed()
    assert not res2.to_be_removed()
    assert not res3.to_be_removed()
    assert change.staged_log() == []
Exemplo n.º 4
0
def commit():
    change.commit_all()
Exemplo n.º 5
0
def commit():
    change.commit_all()