diff --git a/frappe/tests/test_website.py b/frappe/tests/test_website.py index 3472951bbb..8c258521c8 100644 --- a/frappe/tests/test_website.py +++ b/frappe/tests/test_website.py @@ -256,6 +256,21 @@ class TestWebsite(unittest.TestCase): content = get_response_content('/_test/_test_no_context') self.assertIn("Custom Content", content) + def test_caching(self): + # to enable caching + dev_mode = frappe.conf.developer_mode + frappe.conf.developer_mode = 0 + + clear_website_cache() + # first response no-cache + response = get_response('/_test/_test_folder/_test_page') + self.assertIn(('X-From-Cache', 'False'), list(response.headers)) + + # first response returned from cache + response = get_response('/_test/_test_folder/_test_page') + self.assertIn(('X-From-Cache', 'True'), list(response.headers)) + + frappe.conf.developer_mode = dev_mode def set_home_page_hook(key, value): from frappe import hooks diff --git a/frappe/website/doctype/blog_post/test_blog_post.py b/frappe/website/doctype/blog_post/test_blog_post.py index d01e6174c8..95cf4bcd14 100644 --- a/frappe/website/doctype/blog_post/test_blog_post.py +++ b/frappe/website/doctype/blog_post/test_blog_post.py @@ -9,6 +9,7 @@ from frappe.utils import set_request from frappe.website.serve import get_response from frappe.utils import random_string from frappe.website.doctype.blog_post.blog_post import get_blog_list +from frappe.website.utils import clear_website_cache from frappe.website.website_generator import WebsiteGenerator from frappe.custom.doctype.customize_form.customize_form import reset_customization @@ -90,6 +91,26 @@ class TestBlogPost(unittest.TestCase): frappe.delete_doc(blog.doctype, blog.name) frappe.delete_doc("Blog Category", blogs[0].blog_category) + def test_caching(self): + # to enable caching + dev_mode = frappe.conf.developer_mode + frappe.conf.developer_mode = 0 + + clear_website_cache() + # first response no-cache + pages = frappe.get_all('Blog Post', fields=['name', 'route'], + filters={'published': 1, 'route': ('!=', '')}, limit =1) + + set_request(path=pages[0].route) + response = get_response() + self.assertIn(('X-From-Cache', 'False'), list(response.headers)) + + # first response returned from cache + response = get_response() + self.assertIn(('X-From-Cache', 'True'), list(response.headers)) + + frappe.conf.developer_mode = dev_mode + def scrub(text): return WebsiteGenerator.scrub(None, text)