Exemplo n.º 1
0
    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])
Exemplo n.º 2
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']))
Exemplo n.º 3
0
    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'])
Exemplo n.º 4
0
    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])
Exemplo n.º 5
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])
Exemplo n.º 6
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']))
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
    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))
Exemplo n.º 9
0
    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))
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
 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))
Exemplo n.º 12
0
 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))
Exemplo n.º 13
0
 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))
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
    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))
Exemplo n.º 16
0
    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']))
Exemplo n.º 17
0
 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', [])
Exemplo n.º 18
0
 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']))
Exemplo n.º 19
0
 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)
Exemplo n.º 20
0
 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()
Exemplo n.º 21
0
def on_join(data: dict, activity: Activity) -> (int, Union[str, dict, None]):
    return api.on_join(data, activity)
Exemplo n.º 22
0
 def join_room(self):
     act = self.activity_for_join()
     api.on_join(act, as_parser(act))
Exemplo n.º 23
0
    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))
Exemplo n.º 24
0
 def response_code_for_joining(self):
     act = self.activity_for_join()
     return api.on_join(act, as_parser(act))[0]