152 lines
5.6 KiB
Python
152 lines
5.6 KiB
Python
if False:
|
|
@unittest.skip # to yet
|
|
def test_conference(self):
|
|
"""
|
|
t:group_new
|
|
t:conference_delete
|
|
t:conference_get_chatlist_size
|
|
t:conference_get_chatlist
|
|
t:conference_send_message
|
|
"""
|
|
bob_addr = self.bob.self_get_address()
|
|
alice_addr = self.alice.self_get_address()
|
|
|
|
self.abid = self.alice.friend_by_public_key(bob_addr)
|
|
self.baid = self.bob.friend_by_public_key(alice_addr)
|
|
|
|
assert self.bob_just_add_alice_as_friend()
|
|
|
|
#: Test group add
|
|
privacy_state = enums.TOX_GROUP_PRIVACY_STATE['PUBLIC']
|
|
group_name = 'test_group'
|
|
nick = 'test_nick'
|
|
status = None # dunno
|
|
self.group_id = self.bob.group_new(privacy_state, group_name, nick, status)
|
|
# :return group number on success, UINT32_MAX on failure.
|
|
assert self.group_id >= 0
|
|
|
|
self.loop(50)
|
|
|
|
BID = self.abid
|
|
|
|
def alices_on_conference_invite(self, fid, type_, data):
|
|
assert fid == BID
|
|
assert type_ == 0
|
|
gn = self.conference_join(fid, data)
|
|
assert type_ == self.conference_get_type(gn)
|
|
self.gi = True
|
|
|
|
def alices_on_conference_peer_list_changed(self, gid):
|
|
logging.debug("alices_on_conference_peer_list_changed")
|
|
assert gid == self.group_id
|
|
self.gn = True
|
|
|
|
try:
|
|
AliceTox.on_conference_invite = alices_on_conference_invite
|
|
AliceTox.on_conference_peer_list_changed = alices_on_conference_peer_list_changed
|
|
|
|
self.alice.gi = False
|
|
self.alice.gn = False
|
|
|
|
self.wait_ensure_exec(self.bob.conference_invite, (self.aid, self.group_id))
|
|
|
|
assert self.wait_callback_trues(self.alice, ['gi', 'gn'])
|
|
except AssertionError as e:
|
|
raise
|
|
finally:
|
|
AliceTox.on_conference_invite = Tox.on_conference_invite
|
|
AliceTox.on_conference_peer_list_change = Tox.on_conference_peer_list_changed
|
|
|
|
#: Test group number of peers
|
|
self.loop(50)
|
|
assert self.bob.conference_peer_count(self.group_id) == 2
|
|
|
|
#: Test group peername
|
|
self.alice.self_set_name('Alice')
|
|
self.bob.self_set_name('Bob')
|
|
|
|
def alices_on_conference_peer_list_changed(self, gid):
|
|
logging.debug("alices_on_conference_peer_list_changed")
|
|
self.gn = True
|
|
try:
|
|
AliceTox.on_conference_peer_list_changed = alices_on_conference_peer_list_changed
|
|
self.alice.gn = False
|
|
|
|
assert self.wait_callback_true(self.alice, 'gn')
|
|
except AssertionError as e:
|
|
raise
|
|
finally:
|
|
AliceTox.on_conference_peer_list_changed = Tox.on_conference_peer_list_changed
|
|
|
|
peernames = [self.bob.conference_peer_get_name(self.group_id, i) for i in
|
|
range(self.bob.conference_peer_count(self.group_id))]
|
|
assert 'Alice' in peernames
|
|
assert 'Bob' in peernames
|
|
|
|
#: Test title change
|
|
self.bob.conference_set_title(self.group_id, 'My special title')
|
|
assert self.bob.conference_get_title(self.group_id) == 'My special title'
|
|
|
|
#: Test group message
|
|
AID = self.aid
|
|
BID = self.bid
|
|
MSG = 'Group message test'
|
|
|
|
def alices_on_conference_message(self, gid, fgid, msg_type, message):
|
|
logging.debug("alices_on_conference_message" +repr(message))
|
|
if fgid == AID:
|
|
assert gid == self.group_id
|
|
assert str(message, 'UTF-8') == MSG
|
|
self.alice.gm = True
|
|
|
|
try:
|
|
AliceTox.on_conference_message = alices_on_conference_message
|
|
self.alice.gm = False
|
|
|
|
self.wait_ensure_exec(self.bob.conference_send_message, (
|
|
self.group_id, TOX_MESSAGE_TYPE['NORMAL'], MSG))
|
|
assert self.wait_callback_true(self.alice, 'gm')
|
|
except AssertionError as e:
|
|
raise
|
|
finally:
|
|
AliceTox.on_conference_message = Tox.on_conference_message
|
|
|
|
#: Test group action
|
|
AID = self.aid
|
|
BID = self.bid
|
|
MSG = 'Group action test'
|
|
|
|
def on_conference_action(self, gid, fgid, msg_type, action):
|
|
if fgid == AID:
|
|
assert gid == self.group_id
|
|
assert msg_type == TOX_MESSAGE_TYPE['ACTION']
|
|
assert str(action, 'UTF-8') == MSG
|
|
self.ga = True
|
|
|
|
try:
|
|
AliceTox.on_conference_message = on_conference_action
|
|
self.alice.ga = False
|
|
|
|
self.wait_ensure_exec(self.bob.conference_send_message,
|
|
(self.group_id, TOX_MESSAGE_TYPE['ACTION'], MSG))
|
|
|
|
assert self.wait_callback_true(self.alice, 'ga')
|
|
|
|
#: Test chatlist
|
|
assert len(self.bob.conference_get_chatlist()) == self.bob.conference_get_chatlist_size(), \
|
|
print(len(self.bob.conference_get_chatlist()), '!=', self.bob.conference_get_chatlist_size())
|
|
assert len(self.alice.conference_get_chatlist()) == self.bob.conference_get_chatlist_size(), \
|
|
print(len(self.alice.conference_get_chatlist()), '!=', self.bob.conference_get_chatlist_size())
|
|
assert self.bob.conference_get_chatlist_size() == 1, \
|
|
self.bob.conference_get_chatlist_size()
|
|
self.bob.conference_delete(self.group_id)
|
|
assert self.bob.conference_get_chatlist_size() == 0, \
|
|
self.bob.conference_get_chatlist_size()
|
|
|
|
except AssertionError as e:
|
|
raise
|
|
finally:
|
|
AliceTox.on_conference_message = Tox.on_conference_message
|
|
|
|
|