コード例 #1
0
def test_updating_line_associated_with_autoprov_device_does_not_fail(
        line, sip, device):
    with a.line_endpoint_sip(line, sip, check=False):
        with db.queries() as queries:
            queries.associate_line_device(line['id'], device['id'])
        response = confd.lines(line['id']).put()
        response.assert_ok()
コード例 #2
0
def new_switchboard(name=None):
    with db.queries() as queries:
        queue_name = name or 'sw_' + ''.join(
            random.choice(string.ascii_letters) for _ in range(10))
        queue_number = extension.find_available_exten(config.CONTEXT)
        queue_id = queries.insert_queue(queue_name, queue_number)
        id = queries.insert_switchboard(queue_id)
    return {'id': str(id)}
コード例 #3
0
    def test_default_configuration(self):
        body = copy.deepcopy(MINIMAL_POST_BODY)
        response = confd.wizard.post(body)
        response.assert_ok()

        with db.queries() as queries:
            assert_that(queries.sip_has_language('en_US'))
            assert_that(queries.iax_has_language('en_US'))
            assert_that(queries.sccp_has_language('en_US'))
            assert_that(queries.context_has_internal('Default',
                                                     body['context_internal']['number_start'],
                                                     body['context_internal']['number_end']))
            assert_that(queries.context_has_incall('Incalls'))
            assert_that(queries.context_has_outcall('Outcalls'))
コード例 #4
0
def generate_switchboard_stat(time, end_type='abandoned', wait_time=1):
    switchboard = find_switchboard(name=SWITCHBOARD_STAT_QUEUE_NAME)
    if not switchboard:
        switchboard = new_switchboard(name=SWITCHBOARD_STAT_QUEUE_NAME)

    stat = {
        'time': time,
        'end_type': end_type,
        'wait_time': wait_time,
        'queue_id': switchboard['id']
    }
    with db.queries() as queries:
        stat['id'] = queries.insert_switchboard_stat(**stat)

    return stat
コード例 #5
0
def generate_context(**parameters):
    name = 'ctx_' + ''.join(
        random.choice(string.ascii_letters) for _ in range(10))
    parameters.setdefault('name', name)
    parameters.setdefault('contexttype', 'internal')

    start = parameters.pop('start', None)
    end = parameters.pop('end', None)
    didlength = parameters.pop('didlength', 0)
    rangetype = parameters.pop('rangetype', 'user')

    with db.queries() as queries:
        id = queries.insert_context(**parameters)
        if start and end:
            queries.insert_context_range(id, rangetype, start, end, didlength)

    return {'name': id, 'id': id, 'type': parameters['contexttype']}
コード例 #6
0
def test_updating_user_line_or_extension_associated_with_autoprov_device_does_not_fail(
        user, line, sip, extension, device):
    with a.line_endpoint_sip(line, sip, check=False), a.line_extension(line, extension, check=False), \
            a.user_line(user, line, check=False):

        with db.queries() as queries:
            queries.associate_line_device(line['id'], device['id'])

        response = confd.endpoints.sip(sip['id']).put()
        response.assert_ok()

        response = confd.lines(line['id']).put()
        response.assert_ok()

        response = confd.users(user['id']).put()
        response.assert_ok()

        response = confd.extensions(extension['id']).put()
        response.assert_ok()
コード例 #7
0
 def validate_db(self, data):
     with db.queries() as queries:
         assert_that(queries.admin_has_password(data['admin_password']))
         assert_that(queries.autoprov_is_configured())
         assert_that(queries.entity_has_name_displayname('testentity', data['entity_name']))
         assert_that(queries.sip_has_language(data['language']))
         assert_that(queries.iax_has_language(data['language']))
         assert_that(queries.sccp_has_language(data['language']))
         assert_that(queries.general_has_timezone(data['timezone']))
         assert_that(queries.resolvconf_is_configured(data['network']['hostname'],
                                                      data['network']['domain'],
                                                      data['network']['nameservers']))
         assert_that(queries.netiface_is_configured(data['network']['ip_address'],
                                                    data['network']['gateway']))
         assert_that(queries.context_has_internal(data['context_internal']['display_name'],
                                                  data['context_internal']['number_start'],
                                                  data['context_internal']['number_end']))
         assert_that(queries.context_has_incall(data['context_incall']['display_name'],
                                                data['context_incall']['number_start'],
                                                data['context_incall']['number_end'],
                                                data['context_incall']['did_length']))
         assert_that(queries.context_has_outcall(data['context_outcall']['display_name']))
         assert_that(queries.context_has_switchboard())
         assert_that(queries.internal_context_include_outcall_context())
コード例 #8
0
def generate_name():
    with db.queries() as queries:
        response = queries.get_entities()
    names = set(d['name'] for d in response)
    return _random_name(names)
コード例 #9
0
def delete_entity(entity_id, check=False):
    with db.queries() as queries:
        queries.delete_entity(entity_id)
コード例 #10
0
def add_entity(name):
    with db.queries() as queries:
        id = queries.insert_entity(name)
    return {'id': id, 'name': name}
コード例 #11
0
def delete_context(context, check=False):
    with db.queries() as queries:
        queries.delete_context(context)
コード例 #12
0
def delete_switchboard_stat(stat_id, check=False):
    with db.queries() as queries:
        queries.delete_switchboard_stat(stat_id)
コード例 #13
0
def find_switchboard(name):
    with db.queries() as queries:
        return queries.find_queue(name)