Support extension data

This commit is contained in:
WQY\qiong
2023-05-08 20:46:10 +08:00
parent 22f548beb9
commit 132eb036fb
8 changed files with 167 additions and 0 deletions

View File

@@ -203,6 +203,81 @@ class TestApi:
self.leave(p)
# extension_data
def test_extension_data(self):
p = 'test_extension_data'
self.enter(p)
assert get_all_extension_data_keys(p) == []
assert get_all_extension_data(p) == {}
assert get_extension_data(p, '') == None
set_extension_data(p, ChangeSet({'key': 'key', 'value': None}))
assert get_extension_data(p, 'key') == None
set_extension_data(p, ChangeSet({'key': 'key', 'value': ''}))
assert get_extension_data(p, 'key') == ''
set_extension_data(p, ChangeSet({'key': 'key', 'value': 'value'}))
assert get_extension_data(p, 'key') == 'value'
set_extension_data(p, ChangeSet({'key': 'key', 'value': 'val'}))
assert get_extension_data(p, 'key') == 'val'
set_extension_data(p, ChangeSet({'key': 'key1', 'value': 'val1'}))
assert get_extension_data(p, 'key1') == 'val1'
assert get_all_extension_data_keys(p) == ['key', 'key1']
assert get_all_extension_data(p) == {'key': 'val', 'key1': 'val1'}
self.leave(p)
def test_extension_data_op(self):
p = 'test_extension_data_op'
self.enter(p)
cs = set_extension_data(p, ChangeSet({'key': 'key', 'value': ''})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == ''
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == None
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == ''
cs = set_extension_data(p, ChangeSet({'key': 'key', 'value': 'value'})).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == 'value'
cs = execute_undo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == ''
cs = execute_redo(p).operations[0]
assert cs['operation'] == API_UPDATE
assert cs['type'] == 'extension_data'
assert cs['key'] == 'key'
assert cs['value'] == 'value'
self.leave(p)
# complex test