示例#1
0
 def test_read_bad_version(self):
     msg = {'id': '123', 'trust_seed': 'TS42', 'version': 2}
     eff = execute_cmd('vlob_read', msg)
     sequence = [(EVlobRead('123', 'TS42',
                            2), conste(VlobNotFound('Vlob not found.')))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'vlob_not_found'
示例#2
0
 def test_group_create_ok(self):
     eff = execute_cmd('group_create', {'name': 'super adventure club'})
     sequence = [
         (EGroupCreate('super adventure club'), noop)
     ]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'ok'}
示例#3
0
 def test_group_read_unknown(self):
     eff = execute_cmd('group_read', {'name': 'dummy-group'})
     sequence = [
         (EGroupRead('dummy-group'), conste(GroupNotFound('Group not found.')))
     ]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'group_not_found'
示例#4
0
 def test_vlob_create_ok(self, id_and_blob):
     id, blob = id_and_blob
     intent = EVlobCreate(id, blob)
     intent_ret = VlobAtom(id, 'readtrustseed-123', 'writetrustseed-123',
                           blob, 1)
     payload = {}
     if id:
         payload['id'] = id
     else:
         intent_ret.id = '123'
     if blob:
         payload['blob'] = to_jsonb64(blob)
     else:
         intent.blob = b''
         intent_ret.blob = b''
     eff = execute_cmd('vlob_create', payload)
     sequence = [
         (intent, const(intent_ret)),
     ]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
         'id': intent_ret.id,
         'read_trust_seed': 'readtrustseed-123',
         'write_trust_seed': 'writetrustseed-123'
     }
示例#5
0
 def test_group_create_already_exist(self):
     eff = execute_cmd('group_create', {'name': 'super adventure club'})
     sequence = [
         (EGroupCreate('super adventure club'),
             conste(GroupAlreadyExist('Group already exist.')))
     ]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'group_already_exists'
示例#6
0
 def test_group_add_identities_ok(self):
     eff = execute_cmd('group_add_identities',
         {'name': 'super adventure club', 'identities': ['*****@*****.**'], 'admin': True})
     sequence = [
         (EGroupAddIdentities('super adventure club', {'*****@*****.**'}, True), noop)
     ]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'ok'}
示例#7
0
 def test_user_vlob_update_bad_version(self):
     eff = execute_cmd('user_vlob_update', {
         'version': 42,
         'blob': to_jsonb64(b'Next version.')
     })
     sequence = [(EUserVlobUpdate(version=42, blob=b'Next version.'),
                  conste(UserVlobError('Wrong blob version.')))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'user_vlob_error'
示例#8
0
 def test_user_vlob_update_ok(self):
     eff = execute_cmd('user_vlob_update', {
         'version': 42,
         'blob': to_jsonb64(b'Next version.')
     })
     sequence = [(EUserVlobUpdate(version=42, blob=b'Next version.'), noop)]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
     }
示例#9
0
 def test_pubkey_get_ok(self):
     eff = execute_cmd('pubkey_get', {'id': '*****@*****.**'})
     sequence = [(EPubKeyGet('*****@*****.**',
                             raw=True), const(b"alice's raw key"))]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
         'id': '*****@*****.**',
         'key': b"alice's raw key"
     }
示例#10
0
 def test_message_new_ok(self):
     eff = execute_cmd(
         'message_new', {
             'recipient': '*****@*****.**',
             'body': to_jsonb64(b'This is for alice.')
         })
     sequence = [(EMessageNew(recipient='*****@*****.**',
                              body=b'This is for alice.'), noop)]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'ok'}
示例#11
0
 def test_user_vlob_read_ok(self):
     eff = execute_cmd('user_vlob_read', {})
     sequence = [(EUserVlobRead(),
                  const(UserVlobAtom('*****@*****.**', 42,
                                     b'content v42')))]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
         'blob': to_jsonb64(b'content v42'),
         'version': 42
     }
示例#12
0
 def test_vlob_update_ok(self):
     blob = to_jsonb64(b'Next version.')
     eff = execute_cmd('vlob_update', {
         'id': '1234',
         'trust_seed': 'WTS4242',
         'version': 2,
         'blob': blob
     })
     sequence = [(EVlobUpdate('1234', 2, 'WTS4242',
                              b'Next version.'), noop)]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'ok'}
示例#13
0
 def test_update_bad_seed(self):
     msg = {
         'id': '123',
         'trust_seed': 'dummy_seed',
         'version': 2,
         'blob': to_jsonb64(b'Next version.')
     }
     eff = execute_cmd('vlob_update', msg)
     sequence = [(EVlobUpdate('123', 2, 'dummy_seed', b'Next version.'),
                  conste(TrustSeedError('Bad trust seed.')))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'trust_seed_error'
示例#14
0
 def test_update_bad_version(self):
     msg = {
         'id': '123',
         'trust_seed': 'WTS42',
         'version': 2,
         'blob': to_jsonb64(b'Next version.')
     }
     eff = execute_cmd('vlob_update', msg)
     sequence = [(EVlobUpdate('123', 2, 'WTS42', b'Next version.'),
                  conste(VlobNotFound('Vlob not found.')))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'vlob_not_found'
示例#15
0
 def test_vlob_update_not_found(self):
     blob = to_jsonb64(b'Next version.')
     eff = execute_cmd('vlob_update', {
         'id': '1234',
         'trust_seed': 'WTS4242',
         'version': 2,
         'blob': blob
     })
     sequence = [(EVlobUpdate('1234', 2, 'WTS4242', b'Next version.'),
                  conste(VlobNotFound('Vlob not found.')))]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'vlob_not_found', 'label': 'Vlob not found.'}
示例#16
0
 def test_vlob_read_ok(self):
     eff = execute_cmd('vlob_read', {'id': '1234', 'trust_seed': 'TS4242'})
     sequence = [
         (EVlobRead('1234', 'TS4242'),
          const(VlobAtom('1234', 'TS4242', 'WTS4242', b'content v42', 42)))
     ]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
         'id': '1234',
         'blob': to_jsonb64(b'content v42'),
         'version': 42
     }
示例#17
0
 def test_group_read_ok(self):
     eff = execute_cmd('group_read', {'name': 'super adventure club'})
     sequence = [
         (EGroupRead('super adventure club'),
             const(Group('super adventure club', {'*****@*****.**'}, {'*****@*****.**'})))
     ]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status': 'ok',
         'name': 'super adventure club',
         'admins': ['*****@*****.**'],
         'users': ['*****@*****.**']
     }
示例#18
0
 def test_message_get_ok(self):
     eff = execute_cmd('message_get', {})
     sequence = [(EMessageGet(offset=0), const([b'zero', b'one', b'two']))]
     ret = perform_sequence(sequence, eff)
     assert ret == {
         'status':
         'ok',
         'messages': [{
             'count': 1,
             'body': to_jsonb64(b'zero')
         }, {
             'count': 2,
             'body': to_jsonb64(b'one')
         }, {
             'count': 3,
             'body': to_jsonb64(b'two')
         }]
     }
示例#19
0
 def test_pubkey_get_not_found(self):
     eff = execute_cmd('pubkey_get', {'id': '*****@*****.**'})
     sequence = [(EPubKeyGet('*****@*****.**',
                             raw=True), conste(PubKeyNotFound()))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'pubkey_not_found'
示例#20
0
 def test_pubkey_get_bad_msg(self, bad_msg):
     eff = execute_cmd('pubkey_get', bad_msg)
     sequence = []
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'bad_msg'
示例#21
0
 def test_message_new_bad_msg(self, bad_msg):
     eff = execute_cmd('message_new', bad_msg)
     sequence = []
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'bad_msg'
示例#22
0
 def test_vlob_read_not_found(self):
     eff = execute_cmd('vlob_read', {'id': '1234', 'trust_seed': 'TS4242'})
     sequence = [(EVlobRead('1234', 'TS4242'),
                  conste(VlobNotFound('Vlob not found.')))]
     ret = perform_sequence(sequence, eff)
     assert ret == {'status': 'vlob_not_found', 'label': 'Vlob not found.'}
示例#23
0
 def test_user_vlob_read_bad_version(self):
     eff = execute_cmd('user_vlob_read', {'version': 42})
     sequence = [(EUserVlobRead(version=42),
                  conste(UserVlobError('Wrong blob version.')))]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'user_vlob_error'
示例#24
0
 def test_bad_msg_read(self, bad_msg):
     eff = execute_cmd('group_read', bad_msg)
     sequence = [
     ]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'bad_msg'
示例#25
0
 def test_group_add_identities_bad_msg(self, bad_msg):
     eff = execute_cmd('group_add_identities', bad_msg)
     sequence = [
     ]
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'bad_msg'
示例#26
0
 def test_vlob_update_bad_msg(self, bad_msg):
     eff = execute_cmd('vlob_update', bad_msg)
     sequence = []
     ret = perform_sequence(sequence, eff)
     assert ret['status'] == 'bad_msg'