def test_associate_multiple_users(self): group = self.add_group() user1 = self.add_user() sip1 = self.add_endpoint_sip() line1 = self.add_line(endpoint_sip_uuid=sip1.uuid) self.add_user_line(user_id=user1.id, line_id=line1.id) user2 = self.add_user() sccp2 = self.add_sccpline() line2 = self.add_line(endpoint_sccp_id=sccp2.id) self.add_user_line(user_id=user2.id, line_id=line2.id) user3 = self.add_user() custom3 = self.add_usercustom() line3 = self.add_line(endpoint_custom_id=custom3.id) self.add_user_line(user_id=user3.id, line_id=line3.id) members = [ QueueMember(user=user1, priority=3), QueueMember(user=user2, priority=1), QueueMember(user=user3, priority=2), ] group_dao.associate_all_member_users(group, members) self.session.expire_all() assert_that( group.user_queue_members, contains( has_properties(user=user2), has_properties(user=user3), has_properties(user=user1), ))
def _insert_agent_queue_member(self, agent_id, queue_name): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = 'Agent/%s' % (agent_id) queue_member.penalty = 0 queue_member.usertype = 'agent' queue_member.userid = agent_id queue_member.channel = 'foobar' queue_member.category = 'queue' self.add_me(queue_member)
def _insert_group_member(self, group_name, user_type, user_id): queue_member = QueueMember() queue_member.queue_name = group_name queue_member.interface = 'SIP/abcdef' queue_member.penalty = 0 queue_member.usertype = user_type queue_member.userid = user_id queue_member.channel = 'foobar' queue_member.category = 'group' self.session.begin() self.session.add(queue_member) self.session.commit()
def add_agent_to_queue(session, agent_id, agent_number, queue_name): next_position = _get_next_position_for_queue(session, queue_name) queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = 'Agent/%s' % agent_number queue_member.usertype = 'agent' queue_member.userid = agent_id queue_member.channel = 'Agent' queue_member.category = 'queue' queue_member.position = next_position with flush_session(session): session.add(queue_member)
def _insert_queue_member(self, queue_name, member_name, usertype='user', userid=1, is_queue=True): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = member_name queue_member.penalty = 0 queue_member.usertype = usertype queue_member.userid = userid queue_member.channel = 'foobar' queue_member.category = 'queue' if is_queue else 'group' queue_member.position = 0 self.add_me(queue_member)
def add_user_to_queue(self, userid, queuename): queuemember = QueueMember(usertype='user', userid=userid, category='queue', queue_name=queuename, interface='SIP/stuff', channel='SIP') self.add_me(queuemember)
def _insert_queue_member(self, queue_name, member_name, agent_id=1, penalty=0): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = member_name queue_member.penalty = penalty queue_member.usertype = 'agent' queue_member.userid = agent_id queue_member.channel = 'foobar' queue_member.category = 'queue' queue_member.position = 0 self.add_me(queue_member) return queue_member
def _insert_queue_member(self, queue_name, user_type, user_id): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = 'SIP/abcdef' queue_member.penalty = 0 queue_member.usertype = user_type queue_member.userid = user_id queue_member.channel = 'foobar' queue_member.category = 'queue' self.add_me(queue_member)
def add_queue_member(self, **kwargs): kwargs.setdefault('queue_name', ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for _ in range(6))) kwargs.setdefault('interface', ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for _ in range(6))) kwargs.setdefault('usertype', random.choice(['user', 'agent'])) kwargs.setdefault('category', random.choice(['group', 'queue'])) kwargs.setdefault('channel', ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for _ in range(6))) kwargs.setdefault('userid', self._generate_int()) queue_member = QueueMember(**kwargs) self.add_me(queue_member) return queue_member
def add_queue_member(self, **kwargs): kwargs.setdefault('queue_name', self._random_name()) kwargs.setdefault('interface', self._random_name()) kwargs.setdefault('usertype', random.choice(['user', 'agent'])) kwargs.setdefault('category', random.choice(['group', 'queue'])) kwargs.setdefault('channel', self._random_name()) kwargs.setdefault('userid', self._generate_int()) queue_member = QueueMember(**kwargs) self.add_me(queue_member) return queue_member
def add_user_to_queue(session, user_id, queue): next_position = _get_next_position_for_queue(session, queue) queue_member = QueueMember() queue_member.queue_name = queue queue_member.interface = user_line_dao.get_line_identity_by_user_id(user_id) queue_member.usertype = 'user' queue_member.userid = user_id queue_member.channel = queue_member.interface.split('/', 1)[0] queue_member.category = 'queue' queue_member.position = next_position with flush_session(session): session.add(queue_member)
def _insert_queue_member(self, queue_name, member_name, usertype='user', userid=1, is_queue=True): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = member_name queue_member.penalty = 0 queue_member.usertype = usertype queue_member.userid = userid queue_member.channel = 'foobar' queue_member.category = 'queue' if is_queue else 'group' queue_member.position = 0 try: self.session.begin() self.session.add(queue_member) self.session.commit() except Exception: self.session.rollback() raise
def add_agent_to_queue(session, agent_id, agent_number, queue_name): next_position = _get_next_position_for_queue(session, queue_name) queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = 'Agent/%s' % agent_number queue_member.usertype = 'agent' queue_member.userid = agent_id queue_member.channel = 'Agent' queue_member.category = 'queue' queue_member.position = next_position try: session.begin() session.add(queue_member) session.commit() except Exception: session.rollback() raise
def add_user_to_queue(session, user_id, queue): next_position = _get_next_position_for_queue(session, queue) queue_member = QueueMember() queue_member.queue_name = queue queue_member.interface = user_line_dao.get_line_identity_by_user_id( user_id) queue_member.usertype = 'user' queue_member.userid = user_id queue_member.channel = queue_member.interface.split('/', 1)[0] queue_member.category = 'queue' queue_member.position = next_position try: session.begin() session.add(queue_member) session.commit() except Exception: session.rollback() raise
def test_associate_multiple_extensions(self): group = self.add_group() extension1 = Mock(exten='123', context='default') extension2 = Mock(exten='456', context='default') extension3 = Mock(exten='789', context='default') members = [ QueueMember(extension=extension1, priority=3), QueueMember(extension=extension2, priority=1), QueueMember(extension=extension3, priority=2), ] group_dao.associate_all_member_extensions(group, members) self.session.expire_all() assert_that( group.extension_queue_members, contains( has_properties(interface='Local/456@default'), has_properties(interface='Local/789@default'), has_properties(interface='Local/123@default'), ))
def _insert_queue_member(self, queue_name, member_name, agent_id=1, penalty=0): queue_member = QueueMember() queue_member.queue_name = queue_name queue_member.interface = member_name queue_member.penalty = penalty queue_member.usertype = 'agent' queue_member.userid = agent_id queue_member.channel = 'foobar' queue_member.category = 'queue' queue_member.position = 0 try: self.session.begin() self.session.add(queue_member) self.session.commit() except Exception: self.session.rollback() raise return queue_member
def add_user_to_queue(session, user_id, queue): next_position = _get_next_position_for_queue(session, queue) queue_member = QueueMember() queue_member.queue_name = queue queue_member.interface = user_line_dao.get_line_identity_by_user_id(user_id) queue_member.usertype = 'user' queue_member.userid = user_id queue_member.channel = queue_member.interface.split('/', 1)[0] queue_member.category = 'queue' queue_member.position = next_position try: session.begin() session.add(queue_member) session.commit() except Exception: session.rollback() raise
def test_extensions_dissociation(self): group = self.add_group() extension = Mock(exten='123', context='default') group_dao.associate_all_member_extensions( group, [QueueMember(extension=extension)]) self.session.expire_all() assert_that(group.extension_queue_members, contains(has_properties(interface='Local/123@default'))) group_dao.associate_all_member_extensions(group, []) self.session.expire_all() assert_that(group.extension_queue_members, empty()) row = self.session.query(QueueMember).first() assert_that(row, none())
def test_associate_extension_sip(self): group = self.add_group() extension = Mock(exten='123', context='default') group_dao.associate_all_member_extensions( group, [QueueMember(extension=extension)]) self.session.expire_all() assert_that( group.extension_queue_members, contains( has_properties( queue_name=group.name, interface='Local/123@default', channel='Local', usertype='user', userid=0, )))
def test_associate_fix(self): user = self.add_user() sip = self.add_endpoint_sip(name='sipname') line = self.add_line(endpoint_sip_uuid=sip.uuid) self.add_user_line(user_id=user.id, line_id=line.id) group = self.add_group() group_dao.associate_all_member_users(group, [QueueMember(user=user)]) self.session.expire_all() assert_that( group.user_queue_members, contains( has_properties( queue_name=group.name, interface='PJSIP/sipname', channel='SIP', )))
def test_users_dissociation(self): user = self.add_user() sip = self.add_endpoint_sip(name='sipname') line = self.add_line(endpoint_sip_uuid=sip.uuid) self.add_user_line(user_id=user.id, line_id=line.id) group = self.add_group() group_dao.associate_all_member_users(group, [QueueMember(user=user)]) self.session.expire_all() assert_that(group.user_queue_members, contains(has_properties(user=user))) group_dao.associate_all_member_users(group, []) self.session.expire_all() assert_that(group.user_queue_members, empty()) row = self.session.query(UserFeatures).first() assert_that(row, not_none()) row = self.session.query(QueueMember).first() assert_that(row, none())
def _find_or_create_member(self, group, extension): member = self.service.find_member_extension(group, extension) if not member: member = QueueMember(extension=extension) return member
def _find_or_create_member(self, group, user): member = self.service.find_member_user(group, user) if not member: member = QueueMember(user=user) return member
def _find_or_create_member(self, queue, agent): member = self.service.find_member_agent(queue, agent) if not member: member = QueueMember(agent=agent) return member