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'}
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'}
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'}
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']]]
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': '' }
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']]]
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() == []
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'}
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'}
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'}
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() == []
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']]]
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': '' }
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
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