Esempio n. 1
0
    def test_two_sessions_one_leave(self):
        # first session joins
        users = utils.get_users_in_room(BaseTest.ROOM_ID, skip_cache=True)
        self.assertNotIn(BaseTest.USER_ID, users.keys())

        act = self.activity_for_join()
        OnJoinHooks.join_room((act, as_parser(act)))

        users = utils.get_users_in_room(BaseTest.ROOM_ID, skip_cache=True)
        self.assertIn(BaseTest.USER_ID, users.keys())

        # second session joins
        self.env.request = BaseTest.Request(SESSION_ID_TWO)
        environ.env.request = self.env.request
        OnJoinHooks.join_room((act, as_parser(act)))

        room_sids = self.db.get_rooms_with_sid(user_id=BaseTest.USER_ID)
        self.assertIn(SESSION_ID_ONE, room_sids.keys())
        self.assertIn(SESSION_ID_TWO, room_sids.keys())

        # second session leaves
        act = self.act_leave()

        users = utils.get_users_in_room(BaseTest.ROOM_ID, skip_cache=True)
        self.assertIn(BaseTest.USER_ID, users.keys())

        OnLeaveHooks.leave_room((act, as_parser(act)))

        users = utils.get_users_in_room(BaseTest.ROOM_ID, skip_cache=True)
        self.assertIn(BaseTest.USER_ID, users.keys())

        room_sids = self.db.get_rooms_with_sid(user_id=BaseTest.USER_ID)
        self.assertNotIn(SESSION_ID_TWO, room_sids.keys())
        self.assertIn(SESSION_ID_ONE, room_sids.keys())

        # first session leaves
        self.env.request = BaseTest.Request(SESSION_ID_ONE)
        environ.env.request = self.env.request
        act = self.activity_for_leave()
        OnLeaveHooks.leave_room((act, as_parser(act)))

        room_sids = self.db.get_rooms_with_sid(user_id=BaseTest.USER_ID)
        self.assertNotIn(SESSION_ID_TWO, room_sids.keys())
        self.assertNotIn(SESSION_ID_ONE, room_sids.keys())

        users = utils.get_users_in_room(BaseTest.ROOM_ID, skip_cache=True)
        self.assertNotIn(BaseTest.USER_ID, users.keys())
Esempio n. 2
0
    def setUp(self):
        self.set_up_env('sqlite')
        self.env.stats = MockStatsd()
        self.env.auth = AllowAllAuth()
        self.env.capture_exception = lambda x: False
        self.env.observer = EventEmitter()

        self.env.request = BaseTest.Request(SESSION_ID_ONE)
        environ.env.request = self.env.request
        self.db.create_channel(BaseTest.CHANNEL_NAME, BaseTest.CHANNEL_ID,
                               BaseTest.USER_ID)
        self.db.create_room(BaseTest.ROOM_NAME, BaseTest.ROOM_ID,
                            BaseTest.CHANNEL_ID, BaseTest.USER_ID,
                            BaseTest.USER_NAME)