def test_add_posts_expected_data(self, user_context,
                                     mock_session_post_success,
                                     mock_detection_list_user_client):
        high_risk_employee_client = HighRiskEmployeeClient(
            mock_session_post_success, user_context,
            mock_detection_list_user_client)
        high_risk_employee_client.add("942897397520289999")

        posted_data = json.loads(
            mock_session_post_success.post.call_args[1]["data"])
        assert mock_session_post_success.post.call_count == 2
        assert (mock_session_post_success.post.call_args[0][0] ==
                "/svc/api/v2/highriskemployee/add")
        assert (posted_data["tenantId"]
                == user_context.get_current_tenant_id()
                and posted_data["userId"] == "942897397520289999")
    def test_add_when_user_already_on_list_raises_user_already_added_error(
            self, mocker, mock_session, user_context,
            mock_detection_list_user_client):
        def side_effect(url, data):
            if "add" in url:
                base_err = mocker.MagicMock(spec=HTTPError)
                base_err.response = mocker.MagicMock(spec=Response)
                base_err.response.text = "User already on list"
                raise Py42BadRequestError(base_err)

        mock_session.post.side_effect = side_effect
        client = HighRiskEmployeeClient(mock_session, user_context,
                                        mock_detection_list_user_client)
        with pytest.raises(Py42UserAlreadyAddedError) as err:
            client.add("user_id")

        expected = "User with ID user_id is already on the high-risk-employee list."
        assert str(err.value) == expected