def test_create_with_invalid_password(db, user, api_request):
    data = {"email": "*****@*****.**", "current_password": "******"}

    api_request.user = user
    serializer = EmailAddressSerializer(data=data,
                                        context={"request": api_request})
    assert not serializer.is_valid()
def test_update_email_to_existing_user_email(db, user, api_request):
    data = {"email": user.email, "current_password": "******"}

    api_request.user = user
    serializer = EmailAddressSerializer(data=data,
                                        context={"request": api_request})
    assert not serializer.is_valid()
    assert set(serializer.errors.keys()) == {"email"}
def test_create(mock_send_verification, db, user, api_request):
    data = {"email": "*****@*****.**", "current_password": "******"}

    api_request.user = user
    serializer = EmailAddressSerializer(data=data,
                                        context={"request": api_request})
    assert serializer.is_valid()

    emailaddress = serializer.save(user=user)

    assert emailaddress.email == data["email"]

    mock_send_verification.assert_called()
def test_get(db, api_client, email_address):
    """
    GET
    returns email address details
    """
    api_client.force_authenticate(user=email_address.user)
    response = api_client.get(
        reverse("emailaddress-detail", args=[email_address.id]))

    assert response.status_code == status.HTTP_200_OK

    serializer = EmailAddressSerializer(email_address)

    assert response.data == serializer.data
예제 #5
0
def test_create(mock_send_verification, db, api_client, user):
    """
    POST
    valid email and password
    creates new EmailAddress and sends verification email
    """
    data = {"email": "*****@*****.**", "current_password": "******"}

    api_client.force_authenticate(user=user)
    response = api_client.post(list_url, data)
    assert response.status_code == status.HTTP_201_CREATED

    serializer = EmailAddressSerializer(user.emailaddresses.get())

    assert response.data == serializer.data

    mock_send_verification.assert_called()
예제 #6
0
def test_list(db, api_client, user, email_address_factory):
    """
    GET
    returns all user's email addresses
    """
    email_address_factory(user=user, email="*****@*****.**")
    email_address_factory(user=user, email="*****@*****.**")

    # create an email address for another user
    email_address_factory()

    serializer = EmailAddressSerializer(user.emailaddresses.all(), many=True)

    api_client.force_authenticate(user=user)
    response = api_client.get(list_url)
    assert response.status_code == status.HTTP_200_OK
    assert response.data == serializer.data
예제 #7
0
def test_create_duplicate_email(mock_send_verification, db, api_client, user,
                                email_address_factory):
    """
    POST
    email has been used to create EmailAddress (but not verified) by
    another user
    creates new EmailAddress and sends verification email
    """
    email_address_factory(email="*****@*****.**")

    data = {"email": "*****@*****.**", "current_password": "******"}

    api_client.force_authenticate(user=user)
    response = api_client.post(list_url, data)
    assert response.status_code == status.HTTP_201_CREATED

    serializer = EmailAddressSerializer(user.emailaddresses.get())

    assert response.data == serializer.data

    mock_send_verification.assert_called()
def test_create_without_password(db):
    data = {"email": "*****@*****.**"}

    serializer = EmailAddressSerializer(data=data)
    assert not serializer.is_valid()
def test_create_without_email(db):
    data = {"password": "******"}

    serializer = EmailAddressSerializer(data=data)
    assert not serializer.is_valid()