From d23b293e1e4fb8c66665b2c747a80afb0987c3cb Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Mon, 9 May 2022 19:22:13 +0530 Subject: [PATCH 1/2] fix(webform): Only show published web forms --- frappe/website/page_renderers/web_form.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/website/page_renderers/web_form.py b/frappe/website/page_renderers/web_form.py index 913252c155..1953118790 100644 --- a/frappe/website/page_renderers/web_form.py +++ b/frappe/website/page_renderers/web_form.py @@ -4,7 +4,7 @@ from frappe.website.page_renderers.document_page import DocumentPage class WebFormPage(DocumentPage): def can_render(self): - webform_name = frappe.db.exists("Web Form", {"route": self.path}, cache=True) + webform_name = frappe.db.exists("Web Form", {"route": self.path, "published": 1}, cache=True) if webform_name: self.doctype = "Web Form" self.docname = webform_name From e59e68efbda9a181bcff6273091fe78bada75ab1 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Mon, 9 May 2022 19:27:18 +0530 Subject: [PATCH 2/2] test: Add a case to cover webform publish functionality --- frappe/tests/test_webform.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/frappe/tests/test_webform.py b/frappe/tests/test_webform.py index 92dc441bdf..d95e4a7498 100644 --- a/frappe/tests/test_webform.py +++ b/frappe/tests/test_webform.py @@ -1,10 +1,27 @@ import unittest import frappe +from frappe.utils import set_request +from frappe.website.serve import get_response from frappe.www.list import get_list_context -class TestWebsite(unittest.TestCase): +class TestWebform(unittest.TestCase): + def test_webform_publish_functionality(self): + edit_profile = frappe.get_doc("Web Form", "edit-profile") + # publish webform + edit_profile.published = True + edit_profile.save() + set_request(method="GET", path="update-profile") + response = get_response() + self.assertEqual(response.status_code, 200) + + # un-publish webform + edit_profile.published = False + edit_profile.save() + response = get_response() + self.assertEqual(response.status_code, 404) + def test_get_context_hook_of_webform(self): create_custom_doctype() create_webform()