Esempio n. 1
0
def test_discard_update():
    res1 = create_resource('test1')
    res1.db_obj.inputs['a'] = '9'
    operations.commit_log_item(change.create_run(res1))
    res1.update({'a': '11'})
    ModelMeta.save_all_lazy()
    assert len(change.staged_log()) == 1
    assert res1.args == {'a': '11'}

    change.discard_single(change.staged_log()[0])
    assert res1.args == {'a': '9'}
Esempio n. 2
0
def test_discard_update():
    res1 = create_resource('test1')
    res1.inputs['a'] = '9'
    res1.save_lazy()
    operations.commit_log_item(change.create_run(res1.name))
    res1 = resource.load('test1')
    res1.update({'a': '11'})
    ModelMeta.save_all_lazy()
    assert len(change.staged_log()) == 1
    assert res1.args == {'a': '11'}

    change.discard_all()
    assert res1.args == {'a': '9'}
Esempio n. 3
0
def test_discard_update():
    res1 = create_resource('test1')
    res1.inputs['a'] = '9'
    res1.save_lazy()
    operations.commit_log_item(change.create_run(res1.name))
    res1 = resource.load('test1')
    res1.update({'a': '11'})
    ModelMeta.save_all_lazy()
    assert len(change.staged_log()) == 1
    assert res1.args == {'a': '11'}

    change.discard_all()
    assert res1.args == {'a': '9'}
Esempio n. 4
0
def test_revert_update_connected():
    res1 = create_resource('test1')
    res1.inputs['a'] = '9'
    res1.save_lazy()

    res2 = create_resource('test2')
    res2.inputs['a'] = ''
    res2.save_lazy()

    res3 = create_resource('test3')
    res3.inputs['a'] = ''
    res3.save_lazy()

    res1 = resource.load('test1')
    res2 = resource.load('test2')
    res3 = resource.load('test3')
    res1.connect(res2)
    res2.connect(res3)
    ModelMeta.save_all_lazy()

    staged_log = map(lambda res: change.create_run(res.name),
                     (res1, res2, res3))
    assert len(staged_log) == 3

    for item in staged_log:
        assert item.action == 'run'
        operations.commit_log_item(item)

    res1.disconnect(res2)
    staged_log = map(lambda res: change.create_run(res.name),
                     (res2, res3))
    to_revert = []

    for item in staged_log:
        assert item.action == 'run'
        to_revert.append(item.uid)
        operations.commit_log_item(item)

    change.revert_uids(sorted(to_revert, reverse=True))
    ModelMeta.save_all_lazy()

    staged_log = map(lambda res: change.create_run(res.name),
                     (res2, res3))

    for item in staged_log:
        assert item.diff == [['change', 'a', ['', '9']]]
Esempio n. 5
0
def test_revert_removal():
    res = create_resource('test1')
    res.inputs['a'] = '9'
    res.save_lazy()

    commited = CommitedResource.from_dict('test1', {
        'inputs': {
            'a': '9'
        },
        'state': 'operational'
    })
    commited.save_lazy()

    resource_obj = resource.load(res.name)
    resource_obj.remove()
    ModelMeta.save_all_lazy()

    log_item = change.create_remove(resource_obj.name)
    log_item.save()
    uid = log_item.uid
    assert log_item.diff == [['remove', '', [['a', '9']]]]
    operations.commit_log_item(log_item)

    ModelMeta.save_all_lazy()

    with mock.patch.object(repository.Repository, 'read_meta') as mread:
        mread.return_value = {
            'input': {
                'a': {
                    'schema': 'str!'
                }
            },
            'id': 'mocked'
        }
        with mock.patch.object(repository.Repository, 'get_path') as mpath:
            mpath.return_value = 'x'
            change.revert(uid)

    ModelMeta.save_all_lazy()

    resource_obj = resource.load('test1')
    assert resource_obj.args == {
        'a': '9',
        'location_id': '',
        'transports_id': ''
    }
Esempio n. 6
0
def test_revert_update_connected():
    res1 = create_resource('test1')
    res1.inputs['a'] = '9'
    res1.save_lazy()

    res2 = create_resource('test2')
    res2.inputs['a'] = ''
    res2.save_lazy()

    res3 = create_resource('test3')
    res3.inputs['a'] = ''
    res3.save_lazy()

    res1 = resource.load('test1')
    res2 = resource.load('test2')
    res3 = resource.load('test3')
    res1.connect(res2)
    res2.connect(res3)
    ModelMeta.save_all_lazy()

    staged_log = map(lambda res: change.create_run(res.name),
                     (res1, res2, res3))
    assert len(staged_log) == 3

    for item in staged_log:
        assert item.action == 'run'
        operations.commit_log_item(item)

    res1.disconnect(res2)
    staged_log = map(lambda res: change.create_run(res.name), (res2, res3))
    to_revert = []

    for item in staged_log:
        assert item.action == 'run'
        to_revert.append(item.uid)
        operations.commit_log_item(item)

    change.revert_uids(sorted(to_revert, reverse=True))
    ModelMeta.save_all_lazy()

    staged_log = map(lambda res: change.create_run(res.name), (res2, res3))

    for item in staged_log:
        assert item.diff == [['change', 'a', ['', '9']]]
Esempio n. 7
0
def test_revert_create():
    res = create_resource('test1')
    res.db_obj.inputs['a'] = '9'
    logitem = change.create_run(res)
    assert logitem.diff == [['add', '', [['a', '9']]]]
    uid = logitem.uid
    operations.commit_log_item(logitem)

    commited = CommitedResource.get('test1')
    assert commited.inputs == {'a': '9'}

    change.revert(uid)
    ModelMeta.save_all_lazy()
    staged_log = change.staged_log()
    assert len(staged_log) == 1
    for item in staged_log:
        operations.commit_log_item(item)

    assert resource.load_all() == []
Esempio n. 8
0
def test_revert_update():
    prev = {'a': '9'}
    new = {'a': '10'}
    res = create_resource('test1')
    ModelMeta.save_all_lazy()

    res.update(prev)
    ModelMeta.save_all_lazy()
    logitem = change.staged_log()[0]
    operations.commit_log_item(logitem)
    res.update(new)
    ModelMeta.save_all_lazy()
    logitem = change.staged_log()[0]
    uid = logitem.uid
    assert logitem.diff == [['change', 'a', ['9', '10']]]
    operations.commit_log_item(logitem)
    assert res.args == new

    change.revert(uid)
    assert res.args == {'a': '9'}
Esempio n. 9
0
def test_revert_update():
    prev = {'a': '9'}
    new = {'a': '10'}
    res = create_resource('test1')
    res.save()
    action = 'run'
    resource_obj = resource.load(res.name)

    resource_obj.update(prev)
    logitem = change.create_logitem(res.name, action)
    operations.commit_log_item(logitem)
    resource_obj.update(new)

    logitem = change.create_logitem(res.name, action)
    uid = logitem.uid
    assert logitem.diff == [['change', 'a', ['9', '10']]]
    operations.commit_log_item(logitem)
    assert resource_obj.args == new

    change.revert(uid)
    assert resource_obj.args == {'a': '9'}
Esempio n. 10
0
def test_revert_update():
    prev = {'a': '9'}
    new = {'a': '10'}
    res = create_resource('test1')
    res.save()
    action = 'run'
    resource_obj = resource.load(res.name)

    resource_obj.update(prev)
    logitem = change.create_logitem(res.name, action)
    operations.commit_log_item(logitem)
    resource_obj.update(new)

    logitem = change.create_logitem(res.name, action)
    uid = logitem.uid
    assert logitem.diff == [['change', 'a', ['9', '10']]]
    operations.commit_log_item(logitem)
    assert resource_obj.args == new

    change.revert(uid)
    assert resource_obj.args == {'a': '9'}
Esempio n. 11
0
def test_revert_create():
    res = create_resource('test1')
    res.inputs['a'] = '9'
    res.save_lazy()

    logitem = change.create_run(res.name)
    assert logitem.diff == [['add', '', [['a', '9']]]]
    uid = logitem.uid
    operations.commit_log_item(logitem)

    commited = CommitedResource.get('test1')
    assert commited.inputs == {'a': '9'}

    change.revert(uid)
    ModelMeta.save_all_lazy()
    staged_log = change.staged_log()
    assert len(staged_log) == 1
    for item in staged_log:
        operations.commit_log_item(item)

    assert resource.load_all() == []
Esempio n. 12
0
def test_revert_update_connected():
    res1 = create_resource('test1')
    res1.update({'a': '9'})

    res2 = create_resource('test2')
    res2.update({'a': ''})

    res3 = create_resource('test3')
    res3.update({'a': ''})

    res1 = resource.load('test1')
    res2 = resource.load('test2')
    res3 = resource.load('test3')
    res1.connect(res2)
    res2.connect(res3)
    ModelMeta.save_all_lazy()

    staged_items = change.staged_log()
    assert len(staged_items) == 3

    for item in staged_items:
        assert item.action == 'run'
        operations.commit_log_item(item)

    res1.disconnect(res2)
    staged_log = change.staged_log()
    to_revert = []

    for item in staged_log:
        assert item.action == 'run'
        to_revert.append(item.uid)
        operations.commit_log_item(item)

    change.revert_uids(sorted(to_revert, reverse=True))
    ModelMeta.save_all_lazy()

    staged_log = change.staged_log()

    for item in staged_log:
        assert item.diff == [['change', 'a', ['', '9']]]
Esempio n. 13
0
def test_revert_removal():
    res = create_resource('test1')
    res.inputs['a'] = '9'
    res.save_lazy()

    commited = CommitedResource.from_dict('test1', {'inputs': {'a': '9'},
                                                    'state': 'operational'})
    commited.save_lazy()

    resource_obj = resource.load(res.name)
    resource_obj.remove()
    ModelMeta.save_all_lazy()

    log_item = change.create_remove(resource_obj.name)
    log_item.save()
    uid = log_item.uid
    assert log_item.diff == [['remove', '', [['a', '9']]]]
    operations.commit_log_item(log_item)

    ModelMeta.save_all_lazy()

    with mock.patch.object(repository.Repository, 'read_meta') as mread:
        mread.return_value = {
            'input': {'a': {'schema': 'str!'}},
            'id': 'mocked'
        }
        with mock.patch.object(repository.Repository, 'get_path') as mpath:
            mpath.return_value = 'x'
            change.revert(uid)

    ModelMeta.save_all_lazy()

    resource_obj = resource.load('test1')
    assert resource_obj.args == {
        'a': '9',
        'location_id': '',
        'transports_id': ''
    }
Esempio n. 14
0
def test_discard_connection():
    res1 = create_resource('test1')
    res1.db_obj.inputs['a'] = '9'
    res1.db_obj.save_lazy()

    res2 = create_resource('test2')
    res2.db_obj.inputs['a'] = '0'
    res2.db_obj.save_lazy()

    staged_log = map(change.create_run, (res1, res2))
    for item in staged_log:
        operations.commit_log_item(item)

    res1 = resource.load('test1')
    res2 = resource.load('test2')
    res1.connect(res2, {'a': 'a'})
    ModelMeta.save_all_lazy()
    staged_log = change.staged_log()
    assert len(staged_log) == 1
    assert res2.args == {'a': '9'}
    change.discard_all()
    assert res2.args == {'a': '0'}
    assert len(change.staged_log()) == 0
Esempio n. 15
0
def test_discard_connection():
    res1 = create_resource('test1')
    res1.inputs['a'] = '9'
    res1.save_lazy()

    res2 = create_resource('test2')
    res2.inputs['a'] = '0'
    res2.save_lazy()

    staged_log = map(change.create_run, (res1.name, res2.name))
    for item in staged_log:
        operations.commit_log_item(item)

    res1 = resource.load('test1')
    res2 = resource.load('test2')
    res1.connect(res2, {'a': 'a'})
    ModelMeta.save_all_lazy()
    staged_log = change.staged_log()
    assert len(staged_log) == 1
    assert res2.args == {'a': '9'}
    change.discard_all()
    assert res2.args == {'a': '0'}
    assert len(change.staged_log()) == 0