test: Add test cases to validate caching

This commit is contained in:
Suraj Shetty 2021-06-24 12:01:04 +05:30
parent 5531bc1e88
commit 090c604b0a
2 changed files with 36 additions and 0 deletions

View file

@ -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

View file

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