def test_leave_without_target_id(self): act = self.activity_for_join() self.assert_in_room(False) api.on_join(act, as_parser(act)) act = self.activity_for_leave(skip={'target'}) self.assertFalse(request.on_leave(as_parser(act))[0])
def test_users_in_room_is_only_one(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) act = self.activity_for_users_in_room() response_data = api.on_users_in_room(act, as_parser(act)) self.assertEqual(1, len(response_data[1]['object']['attachments']))
def test_users_in_room_is_correct_id(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) act = self.activity_for_users_in_room() response_data = api.on_users_in_room(act, as_parser(act)) self.assertEqual(BaseTest.USER_ID, response_data[1]['object']['attachments'][0]['id'])
def test_users_in_room_status_code_true(self): self.create_channel_and_room() self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) response_data = request.on_users_in_room( as_parser(self.activity_for_users_in_room())) self.assertEqual(True, response_data[0])
def test_users_in_room_missing_actor_id_status_code_true(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) activity = self.activity_for_users_in_room() del activity['actor']['id'] response_data = request.on_users_in_room(as_parser(activity)) self.assertEqual(True, response_data[0])
def test_users_in_room_is_correct_name(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) act = self.activity_for_users_in_room() response_data = api.on_users_in_room(act, as_parser(act)) self.assertEqual( ApiUsersInRoomTest.USER_NAME, b64d(response_data[1]['object']['attachments'][0]['displayName']))
def test_leave_without_target_id(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) act = self.activity_for_leave(skip={'target'}) try: api.on_leave(act, as_parser(act)) self.fail('should raise exception, not target') except AttributeError: pass
def test_join_returns_activity_with_one_user_as_attachment(self): act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] users = self.get_attachment_for_key(attachments, 'user') self.assertEqual(0, len(users)) act = self.activity_for_join() act['actor']['id'] = '9876' response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] users = self.get_attachment_for_key(attachments, 'user') self.assertEqual(1, len(users))
def test_send_room_message(self): act = self.activity_for_join(BaseTest.OTHER_USER_ID, BaseTest.ROOM_ID) api.on_join(act, as_parser(act)) act = self.activity_for_message('this is a message') act['actor']['id'] = BaseTest.OTHER_USER_ID act['target']['objectType'] = 'room' api.on_message(act, as_parser(act)) # make sure hooks have fired, async time.sleep(0.05) self.assertIsNotNone(self.msgs_sent.get(BaseTest.ROOM_ID))
def test_leave_different_room_stays_in_current(self): self.assert_in_room(False) act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) tmp_room_id = str(uuid()) self.create_room(tmp_room_id, tmp_room_id) self.set_room_name(tmp_room_id, tmp_room_id) data = self.activity_for_leave() data['target']['id'] = tmp_room_id response_data = api.on_leave(data, as_parser(data)) self.assertEqual(200, response_data[0]) self.assert_in_room(True)
def test_join_returns_activity_with_one_owner(self): self.set_owner() act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] owners = self.get_attachment_for_key(attachments, 'owner') self.assertEqual(1, len(owners))
def test_join_returns_correct_nr_of_acls(self): correct_acls = {ApiActions.JOIN: {'country': 'de,cn,dk', 'city': 'Shanghai,Berlin,Copenhagen'}} self.set_acl(correct_acls) self.set_owner() act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] returned_acls = self.get_attachment_for_key(attachments, 'acl') self.assertEqual(len(correct_acls.get(ApiActions.JOIN)), len(returned_acls))
def test_join_returns_activity_with_correct_owner(self): self.set_owner() act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] owners = self.get_attachment_for_key(attachments, 'owner') user_id, user_name = owners[0]['id'], owners[0]['displayName'] self.assertEqual(ApiJoinTest.USER_ID, user_id) self.assertEqual(ApiJoinTest.USER_NAME, b64d(user_name))
def test_join_returns_correct_acls(self): correct_acls = {ApiActions.JOIN: {'country': 'de,cn,dk', 'city': 'Shanghai,Berlin,Copenhagen'}} self.set_acl(correct_acls) self.set_owner() act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] returned_acls = self.get_attachment_for_key(attachments, 'acl') for acl in returned_acls: acl_key = acl['objectType'] acl_value = acl['content'] self.assertTrue(acl_key in correct_acls.get(ApiActions.JOIN)) self.assertEqual(correct_acls.get(ApiActions.JOIN)[acl_key], acl_value)
def test_join_returns_history(self): msg = 'this is a test message' self.set_owner() self.assert_join_succeeds() self.send_message(msg) self.assert_in_room(True) self.leave_room() self.assert_in_room(False) act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] returned_history = self.get_attachment_for_key(attachments, 'history') self.assertEqual(1, len(returned_history))
def test_join_returns_correct_history(self): msg = 'this is a test message' self.set_owner() self.assert_join_succeeds() msg_response = self.send_message(msg)[1] self.leave_room() act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] from pprint import pprint pprint(self.get_attachment_for_key(attachments, 'history')) all_history = self.get_attachment_for_key(attachments, 'history') self.assertEqual(1, len(all_history)) history_obj = all_history[0] self.assertEqual(msg_response['id'], history_obj['id']) self.assertEqual(msg, b64d(history_obj['content'])) self.assertEqual(msg_response['published'], history_obj['published']) self.assertEqual(ApiJoinTest.USER_NAME, b64d(history_obj['author']['displayName']))
def test_join_returns_activity_with_empty_owner_attachment(self): act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] self.assert_attachment_equals(attachments, 'owner', [])
def test_join_returns_activity_with_4_attachments(self): act = self.activity_for_join() response = api.on_join(act, as_parser(act)) self.assertEqual(4, len(response[1]['object']['attachments']))
def test_join_returns_activity_with_users_attachment(self): act = self.activity_for_join() response = api.on_join(act, as_parser(act)) attachments = response[1]['object']['attachments'] users = self.get_attachment_for_key(attachments, 'user') self.assertIsNotNone(users)
def test_leave_when_in_room_is_okay(self): act = self.activity_for_join() api.on_join(act, as_parser(act)) self.assert_in_room(True) self.assert_leave_succeeds()
def on_join(data: dict, activity: Activity) -> (int, Union[str, dict, None]): return api.on_join(data, activity)
def join_room(self): act = self.activity_for_join() api.on_join(act, as_parser(act))
def setUp(self): super(SendMessageTest, self).setUp() act = self.activity_for_join(BaseTest.USER_ID, BaseTest.ROOM_ID) api.on_join(act, as_parser(act))
def response_code_for_joining(self): act = self.activity_for_join() return api.on_join(act, as_parser(act))[0]