Пример #1
0
    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)
Пример #3
0
    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()
Пример #4
0
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)
Пример #5
0
    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)
Пример #6
0
 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)
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
    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
Пример #12
0
    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
Пример #13
0
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)
Пример #14
0
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)
Пример #15
0
    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
Пример #16
0
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
Пример #17
0
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
Пример #18
0
    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
Пример #19
0
    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'),
            ))
Пример #20
0
    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
Пример #21
0
    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
Пример #22
0
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
Пример #23
0
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
Пример #24
0
    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())
Пример #25
0
    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,
                )))
Пример #26
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',
                )))
Пример #27
0
    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())
Пример #28
0
 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
Пример #29
0
 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
Пример #30
0
 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