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