Пример #1
0
def test_dissociate_second_user_then_first(first_user, second_user, line):
    with a.user_line(first_user, line, check=False), \
            a.user_line(second_user, line, check=False):
        response = confd.users(second_user['id']).lines(line['id']).delete()
        response.assert_deleted()

        response = confd.users(first_user['id']).lines(line['id']).delete()
        response.assert_deleted()
Пример #2
0
def test_get_secondary_user_associated_to_line(main_user, other_user, line):
    expected = has_item(has_entries({'user_id': other_user['id'],
                                     'line_id': line['id'],
                                     'main_user': False,
                                     'main_line': True}))

    with a.user_line(main_user, line), a.user_line(other_user, line):
        response = confd.lines(line['id']).users.get()
        assert_that(response.items, expected)
Пример #3
0
def test_dissociate_when_line_associated_to_device(user, line, extension,
                                                   device):
    with a.line_extension(line, extension), a.user_line(user,
                                                        line), a.line_device(
                                                            line, device):
        response = confd.lines(line['id']).extension.delete()
        response.assert_match(400, e.resource_associated('Line', 'Device'))
Пример #4
0
def test_dissociate_sip_endpoint_associated_to_device(user, line, sip,
                                                      extension, device):
    with a.line_endpoint_sip(line,
                             sip), a.user_line(user, line), a.line_extension(
                                 line, extension), a.line_device(line, device):
        response = confd.lines(line['id']).endpoints.sip(sip['id']).delete()
        response.assert_match(400, e.resource_associated())
Пример #5
0
def test_given_user_has_sccp_line_when_exporting_then_csv_has_line_fields(
        user, line, sccp):
    expected = has_entries(uuid=user['uuid'],
                           line_protocol="sccp",
                           context=line['context'])

    with a.line_endpoint_sccp(line, sccp), a.user_line(user, line):
        response = confd_csv.users.export.get()
        assert_that(response.csv(), has_item(expected))
Пример #6
0
def test_get_user_associated_to_line(user, line):
    expected = contains(has_entries({'user_id': user['id'],
                                     'line_id': line['id'],
                                     'main_user': True,
                                     'main_line': True}))

    with a.user_line(user, line):
        response = confd.lines(line['id']).users.get()
        assert_that(response.items, expected)
Пример #7
0
def test_dissociate_extension_then_line_then_user(user, line, extension):
    with a.user_line(user, line, check=False), a.line_extension(line,
                                                                extension,
                                                                check=False):

        response = confd.lines(line['id']).extensions(extension['id']).delete()
        response.assert_deleted()

        response = confd.users(user['id']).lines(line['id']).delete()
        response.assert_deleted()
Пример #8
0
def test_associate_line_and_incall(user, line, internal, incall):
    expected = has_entries({
        'line_id': line['id'],
        'extension_id': incall['id']
    })

    with a.user_line(user, line):
        response = confd.lines(
            line['id']).extensions.post(extension_id=incall['id'])
        assert_that(response.item, expected)
Пример #9
0
def test_given_extension_associated_to_sccp_line_when_updated_then_cid_num_updated(
        user, line, sccp, extension):
    exten = h.extension.find_available_exten(config.CONTEXT)

    with a.line_endpoint_sccp(line, sccp), a.line_extension(
            line, extension), a.user_line(user, line):
        confd.extensions(extension['id']).put(exten=exten).assert_updated()

        response = confd.lines(line['id']).get()
        assert_that(response.item, has_entries(caller_id_num=exten))
Пример #10
0
def test_associate_user_line_extension(user, line, extension):
    expected = has_entries({
        'line_id': line['id'],
        'extension_id': extension['id']
    })

    with a.user_line(user, line, check=False):
        response = confd.lines(
            line['id']).extension.post(extension_id=extension['id'])
        response.assert_created('lines', 'extension')
        assert_that(response.item, expected)
Пример #11
0
def test_given_user_has_incall_when_exporting_then_csv_has_incall_fields(
        user, line, sip, incall):
    expected = has_entries(uuid=user['uuid'],
                           incall_exten=incall['exten'],
                           incall_context=incall['context'])

    with a.line_endpoint_sip(line, sip), a.user_line(user,
                                                     line), a.line_extension(
                                                         line, incall):
        response = confd_csv.users.export.get()
        assert_that(response.csv(), has_item(expected))
Пример #12
0
def test_caller_id_on_sccp_line(user, line, sccp, extension):
    with a.line_endpoint_sccp(line, sccp), a.user_line(user,
                                                       line), a.line_extension(
                                                           line, extension):
        response = confd.lines(line['id']).get()
        assert_that(
            response.item,
            has_entries({
                'caller_id_name': 'Jôhn Smîth',
                'caller_id_num': extension['exten']
            }))
Пример #13
0
def test_given_user_has_sip_line_when_exporting_then_csv_has_line_fields(
        user, line, sip):
    expected = has_entries(uuid=user['uuid'],
                           line_protocol="sip",
                           provisioning_code=line['provisioning_code'],
                           context=line['context'],
                           sip_username=sip['username'],
                           sip_secret=sip['secret'])

    with a.line_endpoint_sip(line, sip), a.user_line(user, line):
        response = confd_csv.users.export.get()
        assert_that(response.csv(), has_item(expected))
Пример #14
0
def test_given_user_has_multiple_incalls_when_exporting_then_csv_has_incall_fields(
        user, line, sip, incall1, incall2):
    expected_incall = ";".join([incall1['exten'], incall2['exten']])
    expected_context = ";".join([incall1['context'], incall2['context']])
    expected = has_entries(uuid=user['uuid'],
                           incall_exten=expected_incall,
                           incall_context=expected_context)

    with a.line_endpoint_sip(line, sip), a.user_line(user, line), \
            a.line_extension(line, incall1), a.line_extension(line, incall2):
        response = confd_csv.users.export.get()
        assert_that(response.csv(), has_item(expected))
Пример #15
0
def test_get_user_line_main_associated_endpoints_sip(user, line, sip):
    with a.line_endpoint_sip(line, sip), a.user_line(user, line):
        expected = has_entries({
            'username': has_length(8),
            'secret': has_length(8),
            'type': 'friend',
            'host': 'dynamic',
            'options': instance_of(list),
        })
        response = confd.users(
            user['uuid']).lines.main.associated.endpoints.sip.get()
        assert_that(response.item, expected)
Пример #16
0
def test_search_on_summary_view(user, line, sip, extension):
    url = confd.users(view='summary')

    with a.line_endpoint_sip(line, sip), a.user_line(user,
                                                     line), a.line_extension(
                                                         line, extension):
        yield check_search, url, 'firstname', 'âbou', user['firstname']
        yield check_search, url, 'lastname', 'man', user['lastname']
        yield check_search, url, 'provisioning_code', line[
            'provisioning_code'], line['provisioning_code']
        yield check_search, url, 'extension', extension['exten'], extension[
            'exten']
Пример #17
0
def test_search_on_users_with_context_filter(user, line, extension):
    with a.user_line(user, line), a.line_extension(line, extension):
        response = confd.users.get(search='ali',
                                   view='directory',
                                   context='default')
        assert_that(response.total, equal_to(1))
        assert_that(response.items,
                    has_item(has_entry('exten', extension['exten'])))

        response = confd.users.get(search='ali',
                                   view='directory',
                                   context='other')
        assert_that(response.total, equal_to(0))
Пример #18
0
def test_given_backup_registrar_has_changed_when_sccp_line_updated_then_provd_updated(
        provd, user, line, sccp, extension, device):
    registrar = provd.configs.get('default')
    registrar['proxy_backup'] = '20.2.3.4'
    provd.configs.update(registrar)

    with a.line_endpoint_sccp(line, sccp), a.user_line(user, line), \
            a.line_extension(line, extension), a.line_device(line, device):

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

        provd_config = provd.configs.get(device['id'])
        sccp_config = provd_config['raw_config']['sccp_call_managers']['2']
        assert_that(sccp_config, has_entries(ip='20.2.3.4'))
Пример #19
0
def test_get_line_extension_associations(user, line, internal, incall):
    expected = has_items(
        has_entries({
            'line_id': line['id'],
            'extension_id': internal['id']
        }), has_entries({
            'line_id': line['id'],
            'extension_id': incall['id']
        }))

    with a.user_line(user, line), a.line_extension(line,
                                                   internal), a.line_extension(
                                                       line, incall):
        response = confd.lines(line['id']).extensions.get()
        assert_that(response.items, expected)
Пример #20
0
def test_when_caller_id_updated_on_line_then_provd_is_updated(
        user, line, extension, device):
    with a.user_line(user, line), a.line_extension(line,
                                                   extension), a.line_device(
                                                       line, device):
        response = confd.lines(line['id']).put(caller_id_name="jôhn smîth",
                                               caller_id_num="1000")
        response.assert_updated()

        provd_config = provd.configs.get(device['id'])
        sip_line = provd_config['raw_config']['sip_lines']['1']
        assert_that(
            sip_line,
            has_entries({
                'display_name': 'jôhn smîth',
                'number': extension['exten']
            }))
Пример #21
0
def test_when_caller_id_updated_on_user_then_provd_is_updated(
        user, line, extension, device):
    with a.user_line(user, line), a.line_extension(line,
                                                   extension), a.line_device(
                                                       line, device):
        response = confd.users(
            user['id']).put(caller_id='"rôger rabbit" <1000>')
        response.assert_updated()

        provd_config = provd.configs.get(device['id'])
        sip_line = provd_config['raw_config']['sip_lines']['1']
        assert_that(
            sip_line,
            has_entries({
                'display_name': 'rôger rabbit',
                'number': extension['exten']
            }))
Пример #22
0
def test_summary_view_on_custom_endpoint(user, line, custom, extension):
    expected = has_entries(id=user['id'],
                           uuid=user['uuid'],
                           firstname=user['firstname'],
                           lastname=user['lastname'],
                           provisioning_code=none(),
                           extension=extension['exten'],
                           context=extension['context'],
                           entity=config.ENTITY_NAME,
                           enabled=True,
                           protocol='custom')

    with a.line_endpoint_custom(line, custom), a.line_extension(line, extension), \
            a.user_line(user, line):

        response = confd.users.get(view='summary', id=user['id'])
        assert_that(response.items, contains(expected))
Пример #23
0
def test_given_config_registrar_has_changed_when_sip_line_updated_then_provd_updated(
        provd, user, line, sip, extension, device):
    registrar = provd.configs.get('default')
    registrar['registrar_main'] = '10.0.1.2'
    registrar['proxy_main'] = '11.1.2.3'
    provd.configs.update(registrar)

    with a.line_endpoint_sip(line, sip), a.user_line(user, line), \
            a.line_extension(line, extension), a.line_device(line, device):

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

        provd_config = provd.configs.get(device['id'])
        sip_line = provd_config['raw_config']['sip_lines']['1']
        assert_that(sip_line,
                    has_entries(registrar_ip='10.0.1.2', proxy_ip='11.1.2.3'))
Пример #24
0
def test_when_sip_username_and_password_are_updated_then_provd_is_updated(
        provd, user, line, sip, extension, device):
    with a.line_endpoint_sip(line, sip), a.user_line(user, line), \
            a.line_extension(line, extension), a.line_device(line, device):

        response = confd.endpoints.sip(sip['id']).put(username="******",
                                                      secret="mysecret")
        response.assert_updated()

        provd_config = provd.configs.get(device['id'])
        sip_line = provd_config['raw_config']['sip_lines']['1']
        assert_that(
            sip_line,
            has_entries({
                'auth_username': '******',
                'username': '******',
                'password': '******'
            }))
Пример #25
0
def test_when_extension_updated_on_sip_line_then_provd_is_updated(
        user, line, sip, extension, device):
    exten = h.extension.find_available_exten(config.CONTEXT)
    line_cid = h.extension.find_available_exten(config.CONTEXT,
                                                exclude=[exten])

    with a.line_endpoint_sip(line, sip), a.user_line(user, line), \
            a.line_extension(line, extension), a.line_device(line, device):

        response = confd.extensions(extension['id']).put(exten=exten)
        response.assert_updated()

        response = confd.lines(line['id']).put(caller_id_num=line_cid)
        response.assert_updated()

        provd_config = provd.configs.get(device['id'])
        sip_line = provd_config['raw_config']['sip_lines']['1']
        assert_that(sip_line, has_entries(number=exten))
Пример #26
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()
Пример #27
0
def test_dissociate_line_and_incall(user, line, internal, incall):
    with a.user_line(user, line), a.line_extension(line, incall, check=False):
        response = confd.lines(line['id']).extensions(incall['id']).delete()
        response.assert_deleted()
Пример #28
0
def test_dissociate_when_associated_to_user(line, custom, user):
    with a.line_endpoint_custom(line, custom), a.user_line(user, line):
        response = confd.lines(line['id']).endpoints.custom(
            custom['id']).delete()
        response.assert_match(400, e.resource_associated('Line', 'User'))
Пример #29
0
def test_get_user_line_main_associated_endpoints_sip_when_endpoint_is_sccp(
        user, line, sccp):
    with a.line_endpoint_sccp(line, sccp), a.user_line(user, line):
        response = confd.users(
            user['uuid']).lines.main.associated.endpoints.sip.get()
        assert_that(response.status, equal_to(404))
Пример #30
0
def test_delete_user_when_user_and_line_associated(user, line):
    with a.user_line(user, line):
        response = confd.users(user['id']).delete()
        response.assert_match(400, e.resource_associated('User', 'Line'))