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
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()
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
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()