示例#1
0
def test_validation_on_digit_fields():
    number = vm_helper.find_available_number()
    url = confd.voicemails(number=number,
                           name="test",
                           context=config.CONTEXT).post

    for check in digit_field_checks(url):
        yield check

    with fixtures.voicemail() as voicemail:
        url = confd.voicemails(voicemail['id']).put
        for check in digit_field_checks(url):
            yield check
示例#2
0
def test_delete_voicemail_deletes_on_disk(voicemail, sysconfd):
    response = confd.voicemails(voicemail["id"]).delete()
    response.assert_ok()

    sysconfd.assert_request(
        "/delete_voicemail", query={"mailbox": voicemail["number"], "context": voicemail["context"]}
    )
示例#3
0
def test_delete_voicemail_deletes_on_disk(voicemail, sysconfd):
    response = confd.voicemails(voicemail['id']).delete()
    response.assert_deleted()

    sysconfd.assert_request('/delete_voicemail',
                            query={'mailbox': voicemail['number'],
                                   'context': voicemail['context']})
示例#4
0
def test_update_fields_with_null_value(voicemail):
    number, context = vm_helper.generate_number_and_context()

    response = confd.voicemails.post(name='nullfields',
                                     number=number,
                                     context=context,
                                     password='******',
                                     email='*****@*****.**',
                                     pager='*****@*****.**',
                                     language='en_US',
                                     timezone='eu-fr',
                                     max_messages=10,
                                     attach_audio=True)

    url = confd.voicemails(response.item['id'])
    response = url.put(password=None,
                       email=None,
                       pager=None,
                       language=None,
                       timezone=None,
                       max_messages=None,
                       attach_audio=None)
    response.assert_updated()

    response = url.get()
    assert_that(response.item, has_entries({'password': None,
                                            'email': None,
                                            'language': None,
                                            'timezone': None,
                                            'max_messages': None,
                                            'attach_audio': None}))
示例#5
0
def test_fake_fields(voicemail):
    requests = (confd.voicemails.post, confd.voicemails(voicemail["id"]).put)

    for (field, value, error_field) in FAKE:
        for request in requests:
            fields = _generate_fields()
            fields[field] = value
            response = request(fields)
            yield response.assert_match, 400, e.not_found(error_field)
示例#6
0
def test_fake_fields(voicemail):
    requests = (confd.voicemails.post,
                confd.voicemails(voicemail['id']).put)

    for (field, value, error_field) in FAKE:
        for request in requests:
            fields = _generate_fields()
            fields[field] = value
            response = request(fields)
            yield response.assert_match, 400, e.not_found(error_field)
def test_get_multiple_users_associated_to_voicemail(user1, user2, voicemail):
    expected = has_items(
        has_entries({'user_id': user1['id'],
                     'voicemail_id': voicemail['id']}),
        has_entries({'user_id': user2['id'],
                     'voicemail_id': voicemail['id']}))

    with user_and_voicemail_associated(user1, voicemail), \
            user_and_voicemail_associated(user2, voicemail):

        response = confd.voicemails(voicemail['id']).users.get()
        assert_that(response.items, expected)
示例#8
0
def test_edit_number_and_context_moves_voicemail(voicemail, sysconfd):
    number, context = vm_helper.new_number_and_context('vmctxmove')

    response = confd.voicemails(voicemail['id']).put(number=number,
                                                     context=context)
    response.assert_updated()

    sysconfd.assert_request('/move_voicemail',
                            query={'old_mailbox': voicemail['number'],
                                   'old_context': voicemail['context'],
                                   'new_mailbox': number,
                                   'new_context': context})
示例#9
0
def test_edit_number_and_context_moves_voicemail(voicemail, sysconfd):
    number, context = vm_helper.new_number_and_context("vmctxmove")

    response = confd.voicemails(voicemail["id"]).put(number=number, context=context)
    response.assert_ok()

    sysconfd.assert_request(
        "/move_voicemail",
        query={
            "old_mailbox": voicemail["number"],
            "old_context": voicemail["context"],
            "new_mailbox": number,
            "new_context": context,
        },
    )
示例#10
0
def test_get_multiple_users_associated_to_voicemail(user1, user2, voicemail):
    expected = has_items(
        has_entries({
            'user_id': user1['id'],
            'voicemail_id': voicemail['id']
        }),
        has_entries({
            'user_id': user2['id'],
            'voicemail_id': voicemail['id']
        }))

    with a.user_voicemail(user1,
                          voicemail), a.user_voicemail(user2, voicemail):
        response = confd.voicemails(voicemail['id']).users.get()
        assert_that(response.items, expected)
示例#11
0
def test_edit_voicemail(voicemail):
    number, context = vm_helper.new_number_and_context("vmctxedit")

    parameters = {
        "name": "edited",
        "number": number,
        "context": context,
        "email": "*****@*****.**",
        "pager": "*****@*****.**",
        "language": "en_US",
        "timezone": "eu-fr",
        "password": "******",
        "max_messages": 10,
        "attach_audio": True,
        "ask_password": False,
        "delete_messages": True,
        "enabled": False,
        "options": [["saycid", "yes"], ["emailbody", "this\nis\ra\temail|body"]],
    }

    expected = has_entries(
        {
            "name": "edited",
            "number": number,
            "context": context,
            "email": "*****@*****.**",
            "pager": "*****@*****.**",
            "language": "en_US",
            "timezone": "eu-fr",
            "password": "******",
            "max_messages": 10,
            "attach_audio": True,
            "ask_password": False,
            "delete_messages": True,
            "enabled": False,
            "options": has_items(["saycid", "yes"], ["emailbody", "this\nis\ra\temail|body"]),
        }
    )

    url = confd.voicemails(voicemail["id"])

    response = url.put(parameters)
    response.assert_ok()

    response = url.get()
    assert_that(response.item, expected)
示例#12
0
def test_edit_voicemail(voicemail):
    number, context = vm_helper.new_number_and_context('vmctxedit')

    parameters = {'name': 'edited',
                  'number': number,
                  'context': context,
                  'email': '*****@*****.**',
                  'pager': '*****@*****.**',
                  'language': 'en_US',
                  'timezone': 'eu-fr',
                  'password': '******',
                  'max_messages': 10,
                  'attach_audio': True,
                  'ask_password': False,
                  'delete_messages': True,
                  'enabled': False,
                  'options': [["saycid", "yes"],
                              ["emailbody", "this\nis\ra\temail|body"]]}

    expected = has_entries({'name': 'edited',
                            'number': number,
                            'context': context,
                            'email': '*****@*****.**',
                            'pager': '*****@*****.**',
                            'language': 'en_US',
                            'timezone': 'eu-fr',
                            'password': '******',
                            'max_messages': 10,
                            'attach_audio': True,
                            'ask_password': False,
                            'delete_messages': True,
                            'enabled': False,
                            'options': has_items(["saycid", "yes"],
                                                 ["emailbody", "this\nis\ra\temail|body"])
                            })

    url = confd.voicemails(voicemail['id'])

    response = url.put(parameters)
    response.assert_updated()

    response = url.get()
    assert_that(response.item, expected)
示例#13
0
def test_update_fields_with_null_value(voicemail):
    number, context = vm_helper.generate_number_and_context()

    response = confd.voicemails.post(
        name="nullfields",
        number=number,
        context=context,
        password="******",
        email="*****@*****.**",
        pager="*****@*****.**",
        language="en_US",
        timezone="eu-fr",
        max_messages=10,
        attach_audio=True,
    )

    url = confd.voicemails(response.item["id"])
    response = url.put(
        password=None, email=None, pager=None, language=None, timezone=None, max_messages=None, attach_audio=None
    )
    response.assert_ok()

    response = url.get()
    assert_that(
        response.item,
        has_entries(
            {
                "password": None,
                "email": None,
                "language": None,
                "timezone": None,
                "max_messages": None,
                "attach_audio": None,
            }
        ),
    )
示例#14
0
def test_edit_voicemail_when_still_associated(user, voicemail):
    number = h.voicemail.find_available_number(voicemail['context'])
    with user_and_voicemail_associated(user, voicemail):
        response = confd.voicemails(voicemail['id']).put(number=number)
        response.assert_ok()
示例#15
0
def test_delete_voicemail(voicemail):
    response = confd.voicemails(voicemail['id']).delete()
    response.assert_deleted()
示例#16
0
def test_delete_voicemail_when_still_associated(user, voicemail):
    with a.user_voicemail(user, voicemail):
        response = confd.voicemails(voicemail['id']).delete()
        response.assert_match(400, e.resource_associated('Voicemail', 'User'))
示例#17
0
def test_get_users_associated_to_voicemail_when_voicemail_does_not_exist():
    response = confd.voicemails(FAKE_ID).users.get()
    response.assert_match(404, e.not_found('Voicemail'))
示例#18
0
def test_edit_voicemail_when_still_associated(user, voicemail):
    number = h.voicemail.find_available_number(voicemail['context'])
    with a.user_voicemail(user, voicemail):
        response = confd.voicemails(voicemail['id']).put(number=number)
        response.assert_updated()
示例#19
0
def test_edit_voicemail_with_same_number_and_context(first_voicemail, second_voicemail):
    response = confd.voicemails(first_voicemail['id']).put(number=second_voicemail['number'],
                                                           context=second_voicemail['context'])
    response.assert_match(400, e.resource_exists('Voicemail'))
示例#20
0
def test_get_voicemail(voicemail):
    response = confd.voicemails(voicemail['id']).get()
    assert_that(response.item, has_entries(voicemail))
示例#21
0
def test_get_voicemail(voicemail):
    response = confd.voicemails(voicemail["id"]).get()
    assert_that(response.item, has_entries(voicemail))
示例#22
0
def test_edit_voicemail_with_same_number_and_context(first_voicemail, second_voicemail):
    response = confd.voicemails(first_voicemail["id"]).put(
        number=second_voicemail["number"], context=second_voicemail["context"]
    )
    response.assert_match(400, e.resource_exists("Voicemail"))
示例#23
0
def delete_voicemail(voicemail_id, check=False):
    response = confd.voicemails(voicemail_id).delete()
    if check:
        response.assert_ok()
示例#24
0
def delete_voicemail(voicemail_id, check=False):
    response = confd.voicemails(voicemail_id).delete()
    if check:
        response.assert_ok()
示例#25
0
def test_delete_voicemail(voicemail):
    response = confd.voicemails(voicemail["id"]).delete()
    response.assert_ok()
示例#26
0
def test_delete_voicemail_when_still_associated(user, voicemail):
    with user_and_voicemail_associated(user, voicemail):
        response = confd.voicemails(voicemail['id']).delete()
        response.assert_match(400, e.resource_associated('Voicemail', 'User'))
示例#27
0
def test_get_users_associated_to_voicemail_when_voicemail_does_not_exist():
    response = confd.voicemails(FAKE_ID).users.get()
    response.assert_match(404, e.not_found('Voicemail'))