Example #1
0
    async def test_update_user_update_all_fields(self):
        expected_new_name = "Novo Nome"
        expected_new_email = "*****@*****.**"

        new_user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT)
        new_user.name = expected_new_name
        new_user.email = expected_new_email

        resp = await self.client.patch(
            f"/users/{USER_WITH_MULTIPLE_ACCOUNTS_ID}",
            headers={
                "Authorization":
                f"Token {USER_WITH_MULTIPLE_ACCOUNTS_AUTH_KEY}"
            },
            json=new_user.dict(),
        )
        self.assertEqual(HTTPStatus.ACCEPTED, resp.status)
        user_data = await resp.json()

        self.assertEqual(UserResource(user=new_user).dict(), user_data)

        resp = await self.client.get(
            f"/users/{USER_WITH_MULTIPLE_ACCOUNTS_ID}",
            headers={
                "Authorization":
                f"Token {USER_WITH_MULTIPLE_ACCOUNTS_AUTH_KEY}"
            },
        )
        updated_user_data = await resp.json()
        self.assertEqual(UserResource(user=new_user).dict(), updated_user_data)
Example #2
0
    async def test_update_user_duplicate_email(self):
        expected_new_email = USER_WITH_NO_ACCOUNTS_EMAIL
        new_user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT)
        new_user.email = expected_new_email

        with self.assertRaises(DuplicateEntity):
            updated_user = await self.backend.update_user(new_user)
Example #3
0
    async def test_update_user_cant_update_another_user(self):
        """
        Dado um request 
          PATCH /users/42
          {"id": 50, "name": "Nome", "email": "email"}

        Não podemos, no final das contas ter atualizado o user id=50. Temos que atualizar o user id=42
        """
        expected_new_name = "Novo Nome"
        expected_new_email = "*****@*****.**"

        new_user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT)
        new_user.name = expected_new_name
        new_user.email = expected_new_email
        new_user.id = USER_WITH_NO_ACCOUNTS_ID

        resp = await self.client.patch(
            f"/users/{USER_WITH_MULTIPLE_ACCOUNTS_ID}",
            headers={
                "Authorization":
                f"Token {USER_WITH_MULTIPLE_ACCOUNTS_AUTH_KEY}"
            },
            json=new_user.dict(),
        )
        self.assertEqual(HTTPStatus.ACCEPTED, resp.status)
        user_data = await resp.json()

        expected_returned_user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT)
        expected_returned_user.name = expected_new_name
        expected_returned_user.email = expected_new_email
        self.assertEqual(
            UserResource(user=expected_returned_user).dict(), user_data)

        resp = await self.client.get(
            f"/users/{USER_WITH_NO_ACCOUNTS_ID}",
            headers={
                "Authorization":
                f"Token {USER_WITH_MULTIPLE_ACCOUNTS_AUTH_KEY}"
            },
        )
        updated_user_data = await resp.json()
        self.assertEqual(
            UserResource(user=User(**USER_WITH_NO_ACCOUNTS_DICT)).dict(),
            updated_user_data,
        )
Example #4
0
    async def test_update_user_update_name(self):
        expected_new_email = "*****@*****.**"
        new_user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT)
        new_user.email = expected_new_email

        updated_user = await self.backend.update_user(new_user)
        self.assertEqual(new_user, updated_user)

        saved_user = await self.backend.get_user_by_id(
            USER_WITH_MULTIPLE_ACCOUNTS_ID
        )
        self.assertEqual(new_user, saved_user)