seitime-frappe/frappe/tests/test_webform.py
Ankush Menat 02ecb10205
fix!: Remove badly written default portal list views (#35182)
* fix!: Remove badly written default portal list views

* fix!: Remove guest permissions from web form list endpoint

* test: cleanly terminate gunicorn

int sometimes ends up leaving socket open
2025-12-14 07:11:45 +00:00

66 lines
1.5 KiB
Python

import frappe
from frappe.tests import IntegrationTestCase
from frappe.utils import set_request
from frappe.website.serve import get_response
from frappe.www.list import get_list_context
class TestWebform(IntegrationTestCase):
def test_webform_publish_functionality(self):
request_data = frappe.get_doc("Web Form", "request-data")
# publish webform
request_data.published = True
request_data.save()
set_request(method="GET", path="request-data/new")
response = get_response()
self.assertEqual(response.status_code, 200)
# un-publish webform
request_data.published = False
request_data.save()
response = get_response()
self.assertEqual(response.status_code, 404)
def create_custom_doctype():
frappe.get_doc(
{
"doctype": "DocType",
"name": "Custom Doctype",
"module": "Core",
"custom": 1,
"fields": [{"label": "Title", "fieldname": "title", "fieldtype": "Data"}],
}
).insert(ignore_if_duplicate=True)
def create_webform():
frappe.get_doc(
{
"doctype": "Web Form",
"module": "Core",
"title": "Test Webform",
"route": "test-webform",
"doc_type": "Custom Doctype",
"web_form_fields": [
{
"doctype": "Web Form Field",
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
}
],
}
).insert(ignore_if_duplicate=True)
def set_webform_hook(key, value):
from frappe import hooks
# reset hooks
for hook in "webform_list_context":
if hasattr(hooks, hook):
delattr(hooks, hook)
setattr(hooks, key, value)
frappe.client_cache.delete_value("app_hooks")