File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/tests/forms/test_views.py
from flask import url_for
from flask_babel import gettext as _
from buyercall.tests.lib.util import ViewTestMixin
from buyercall.tests.lib.assertions import assert_status_with_message
from buyercall.blueprints.form_leads.models import ExternalForm, FormLead, FormLeadField
class TestFormViews(ViewTestMixin):
def test_form_list_logged_out(self):
"""Form list page redirects to login."""
response = self.client.get(url_for('form_leads.forms_list'))
assert_status_with_message(302, response, _('forms'))
def test_form_list(self, form_leads):
"""Form list page renders successfully."""
self.login()
response = self.client.get(url_for('form_leads.forms_list'))
assert_status_with_message(200, response, _('Forms List'))
def test_leads_list_logged_out(self):
"""Lead list page redirects to login."""
response = self.client.get(url_for('form_leads.leads_list', form_id=1))
assert_status_with_message(302, response, _('login'))
assert b'forms' in response.data
assert b'leads' in response.data
def test_leads_list(self):
"""Lead list page renders successfully."""
self.login()
form = ExternalForm.query.first()
response = self.client.get(url_for('form_leads.leads_list', form_id=form.id))
assert_status_with_message(200, response, _('buyercall - Form Lead List'))
def test_form_edit_logged_out(self):
"""Form update redirects to login."""
response = self.client.get(url_for('form_leads.form_edit', id_=1))
assert_status_with_message(302, response, _('login'))
assert b'forms' in response.data
def test_form_edit_page(self):
"""Form update page renders successfully."""
self.login()
form = ExternalForm.query.first()
response = self.client.get(url_for('form_leads.form_edit', id_=form.id))
assert_status_with_message(200, response, _('Edit Form'))
def test_update_form(self):
"""Edited a form."""
self.login()
params = {
'display_name': 'edited_form'
}
form = ExternalForm.query.first()
response = self.client.post(
url_for('form_leads.form_update', id_=form.id),
data=params,
follow_redirects=True
)
edited_form = ExternalForm.query.filter(ExternalForm.id == form.id).first()
assert edited_form.display_name == 'edited_form'
assert_status_with_message(200, response, _('Forms List'))
def test_form_update_logged_out(self):
"""Form update redirects to login."""
response = self.client.get(url_for('form_leads.form_update', id_=1))
assert_status_with_message(302, response, _('login'))
assert b'forms' in response.data
def test_form_leads_edit_logged_out(self):
"""Form update redirects to login."""
response = self.client.get(url_for('form_leads.form_leads_edit', id_=1))
assert_status_with_message(302, response, _('login'))
assert b'form_leads' in response.data
def test_form_leads_edit_page(self):
"""Form update page renders successfully."""
self.login()
form = ExternalForm.query.first()
form_lead = FormLead.query.filter(FormLead.form_id == form.id).first()
response = self.client.get(url_for('form_leads.form_leads_edit', id_=form_lead.id))
assert_status_with_message(200, response, _('Edit Form Lead'))
def test_form_leads_update_form(self):
"""Edited a form."""
self.login()
form = ExternalForm.query.first()
form_lead = FormLead.query.filter(FormLead.form_id == form.id).first()
form_lead_field = FormLeadField.query.filter(FormLeadField.lead_id == form_lead.id).first()
params = {
'field-{}'.format(form_lead_field.field_id): 'edited_field_value'
}
response = self.client.post(
url_for('form_leads.form_leads_update', id_=form_lead.id),
data=params,
follow_redirects=True
)
edited_form_lead_field = FormLeadField.query.filter(FormLeadField.lead_id == form_lead.id).first()
from buyercall.blueprints.form_leads.views import decrypt_value
assert decrypt_value(edited_form_lead_field.field_value) == 'edited_field_value'
assert_status_with_message(200, response, _('buyercall - Form Lead List'))
def test_form_leads_update_logged_out(self):
"""Form update redirects to login."""
response = self.client.get(url_for('form_leads.form_leads_update', id_=1))
assert_status_with_message(302, response, _('login'))
assert b'form_leads' in response.data