示例#1
0
    def test_create_contact_record_public(self, send_contact_email_patch):
        request = self.rf.create_request_as_public_user()
        user = self.rf.public_user
        subject = 'Inquire about {}'.format(request.id)
        message = 'I need more information about my request.'
        body = "Name: {} {}\n\nEmail: {}\n\nSubject: {}\n\nMessage:\n{}".format(
            user.first_name, user.last_name, user.email, subject, message)
        agency_emails = get_agency_emails(request.id)

        with flask_login_user(user):
            create_contact_record(request,
                                  user.first_name,
                                  user.last_name,
                                  user.email,
                                  subject,
                                  message)
            send_contact_email_patch.assert_called_once_with(
                subject,
                agency_emails,
                message,
                user.email
            )
        email_obj = Emails.query.filter(Emails.request_id == request.id,
                                        Emails.subject == subject).one()
        self.assertEqual(
            [
                [email_obj.to],
                email_obj.body
            ],
            [
                agency_emails,
                body
            ]
        )

        contact_event = Events.query.filter_by(response_id=email_obj.id).one()
        self.assertEqual(
            [
                contact_event.request_id,
                contact_event.user_guid,
                contact_event.auth_user_type,
                contact_event.type,
                contact_event.new_value
            ],
            [
                request.id,
                user.guid,
                user.auth_user_type,
                event_type.CONTACT_EMAIL_SENT,
                email_obj.val_for_events
            ]
        )
示例#2
0
def contact_agency(request_id):
    """
    This function handles contacting the agency about a request as a requester. 
    :return: 
    """
    current_request = Requests.query.filter_by(id=request_id).one()
    form = ContactAgencyForm(current_request)
    del form.subject
    if form.validate_on_submit():
        create_contact_record(current_request,
                              flask_request.form['first_name'],
                              flask_request.form['last_name'],
                              flask_request.form['email'],
                              "Inquiry about {}".format(request_id),
                              flask_request.form['message'])
        flash('Your message has been sent.', category='success')
    else:
        flash('There was a problem sending your message. Please try again.', category='danger')
    return redirect(url_for('request.view', request_id=request_id))
示例#3
0
def contact_agency(request_id):
    """
    This function handles contacting the agency about a request as a requester. 
    :return: 
    """
    current_request = Requests.query.filter_by(id=request_id).one()
    form = ContactAgencyForm(current_request)
    del form.subject
    if form.validate_on_submit():
        create_contact_record(current_request,
                              flask_request.form['first_name'],
                              flask_request.form['last_name'],
                              flask_request.form['email'],
                              "Inquiry about {}".format(request_id),
                              flask_request.form['message'])
        flash('Your message has been sent.', category='success')
    else:
        flash('There was a problem sending your message. Please try again.', category='danger')
    return redirect(url_for('request.view', request_id=request_id))
示例#4
0
def contact_agency(request_id):
    """
    This function handles contacting the agency about a request as a requester. 
    :return: 
    """
    current_request = Requests.query.filter_by(id=request_id).one()
    form = ContactAgencyForm(current_request)
    del form.subject
    if form.validate_on_submit():
        create_contact_record(
            current_request,
            flask_request.form["first_name"],
            flask_request.form["last_name"],
            flask_request.form["email"],
            "Inquiry about {}".format(request_id),
            flask_request.form["message"],
        )
        flash("Your message has been sent.", category="success")
    else:
        flash(
            "There was a problem sending your message. Please try again.",
            category="danger",
        )
    return redirect(url_for("request.view", request_id=request_id))
示例#5
0
    def test_create_contact_record_anon(self, send_contact_email_patch):
        request = self.rf.create_request_as_anonymous_user()
        first_name = 'John'
        last_name = 'Doris'
        subject = 'Inquire about {}'.format(request.id)
        email = '*****@*****.**'
        message = 'I need more information about my request.'
        body = "Name: {} {}\n\nEmail: {}\n\nSubject: {}\n\nMessage:\n{}".format(
            first_name, last_name, email, subject, message)
        agency_emails = get_agency_emails(request.id)

        create_contact_record(request,
                              first_name,
                              last_name,
                              email,
                              subject,
                              message)
        send_contact_email_patch.assert_called_once_with(
            subject,
            agency_emails,
            message,
            email
        )

        user = Users.query.filter_by(email=email).one()
        self.assertEqual(
            [
                user.first_name,
                user.last_name,
                user.auth_user_type,
                user.email
            ],
            [
                first_name,
                last_name,
                user_type_auth.ANONYMOUS_USER,
                email
            ]
        )
        user_created_event = Events.query.filter(Events.request_id == request.id,
                                                 Events.type == event_type.USER_CREATED).one()
        self.assertEqual(user.val_for_events, user_created_event.new_value)
        email_obj = Emails.query.filter(Emails.request_id == request.id,
                                        Emails.subject == subject).one()
        self.assertEqual(
            [
                [email_obj.to],
                email_obj.body
            ],
            [
                agency_emails,
                body
            ]
        )

        contact_event = Events.query.filter_by(response_id=email_obj.id).one()
        self.assertEqual(
            [
                contact_event.request_id,
                contact_event.user_guid,
                contact_event.auth_user_type,
                contact_event.type,
                contact_event.new_value
            ],
            [
                request.id,
                user.guid,
                user.auth_user_type,
                event_type.CONTACT_EMAIL_SENT,
                email_obj.val_for_events
            ]
        )