[tests] added basic tests for page and generator
This commit is contained in:
parent
697502b6f4
commit
5e3bcbe01f
14 changed files with 77 additions and 13 deletions
|
|
@ -64,7 +64,7 @@ def application(request):
|
|||
response = frappe.utils.response.download_private_file(request.path)
|
||||
|
||||
elif frappe.local.request.method in ('GET', 'HEAD'):
|
||||
response = frappe.website.render.render(request.path)
|
||||
response = frappe.website.render.render()
|
||||
|
||||
else:
|
||||
raise NotFound
|
||||
|
|
|
|||
|
|
@ -961,6 +961,7 @@ li .footer-child-item {
|
|||
}
|
||||
.comment-header {
|
||||
border-bottom: 1px solid #EBEFF2;
|
||||
padding: 30px 0px 15px;
|
||||
}
|
||||
.item-search {
|
||||
border-bottom: 1px solid #d1d8dd;
|
||||
|
|
|
|||
|
|
@ -571,6 +571,7 @@ li .footer-child-item {
|
|||
|
||||
.comment-header{
|
||||
border-bottom: 1px solid @light-border-color;
|
||||
padding: 30px 0px 15px;
|
||||
}
|
||||
|
||||
.item-search {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/* login-css */
|
||||
|
||||
.page-sidebar, #wrap-footer, .page-header {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -114,6 +116,6 @@ p{
|
|||
.btn-login {
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
font-weight: 400;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
window.disable_signup = {{ disable_signup and "true" or "false" }};
|
||||
// login.js
|
||||
// don't remove this line (used in test)
|
||||
|
||||
window.disable_signup = {{ disable_signup and "true" or "false" }};
|
||||
|
||||
window.login = {};
|
||||
|
||||
|
|
|
|||
25
frappe/tests/test_website.py
Normal file
25
frappe/tests/test_website.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import frappe, unittest
|
||||
from werkzeug.wrappers import Request
|
||||
from werkzeug.test import EnvironBuilder
|
||||
|
||||
from frappe.website import render
|
||||
|
||||
def set_request(**kwargs):
|
||||
builder = EnvironBuilder(**kwargs)
|
||||
frappe.local.request = Request(builder.get_environ())
|
||||
|
||||
class TestWebsite(unittest.TestCase):
|
||||
|
||||
def test_page_load(self):
|
||||
set_request(method='POST', path='login')
|
||||
response = render.render()
|
||||
|
||||
self.assertTrue(response.status_code, 200)
|
||||
|
||||
html = response.get_data()
|
||||
|
||||
self.assertTrue('/* login-css */' in html)
|
||||
self.assertTrue('// login.js' in html)
|
||||
self.assertTrue('<!-- login.html -->' in html)
|
||||
|
|
@ -19,6 +19,11 @@ class BlogPost(WebsiteGenerator):
|
|||
page_title_field = "title"
|
||||
)
|
||||
|
||||
def make_route(self):
|
||||
if not self.route:
|
||||
return 'blog/' + frappe.db.get_value('Blog Category', self.blog_category,
|
||||
'route') + '/' + self.scrub(self.title)
|
||||
|
||||
def get_feed(self):
|
||||
return self.title
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,29 @@ from __future__ import unicode_literals
|
|||
import frappe
|
||||
import unittest
|
||||
|
||||
class TestBlogPost(unittest.TestCase):
|
||||
pass
|
||||
from frappe.tests.test_website import set_request
|
||||
from frappe.website.render import render
|
||||
|
||||
class TestBlogPost(unittest.TestCase):
|
||||
def test_generator_view(self):
|
||||
pages = frappe.get_all('Blog Post', fields=['name', 'route'],
|
||||
filters={'published': 1, 'route': ('!=', '')}, limit =1)
|
||||
|
||||
set_request(path=pages[0].route)
|
||||
response = render()
|
||||
|
||||
self.assertTrue(response.status_code, 200)
|
||||
|
||||
html = response.get_data()
|
||||
self.assertTrue('<article class="blog-content" itemscope itemtype="http://schema.org/BlogPosting">' in html)
|
||||
|
||||
def test_generator_not_found(self):
|
||||
pages = frappe.get_all('Blog Post', fields=['name', 'route'],
|
||||
filters={'published': 0}, limit =1)
|
||||
|
||||
frappe.db.set_value('Blog Post', pages[0].name, 'route', 'test-route-000')
|
||||
|
||||
set_request(path='test-route-000')
|
||||
response = render()
|
||||
|
||||
self.assertTrue(response.status_code, 404)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@
|
|||
"blogger": "_Test Blogger",
|
||||
"content": "Test Blog Content",
|
||||
"doctype": "Blog Post",
|
||||
"title": "_Test Blog Post"
|
||||
"title": "_Test Blog Post",
|
||||
"published": 1
|
||||
},
|
||||
{
|
||||
"blog_category": "_Test Blog Category 1",
|
||||
|
|
@ -13,7 +14,8 @@
|
|||
"blogger": "_Test Blogger",
|
||||
"content": "Test Blog Content",
|
||||
"doctype": "Blog Post",
|
||||
"title": "_Test Blog Post 1"
|
||||
"title": "_Test Blog Post 1",
|
||||
"published": 1
|
||||
},
|
||||
{
|
||||
"blog_category": "_Test Blog Category 1",
|
||||
|
|
@ -21,6 +23,7 @@
|
|||
"blogger": "_Test Blogger 1",
|
||||
"content": "Test Blog Content",
|
||||
"doctype": "Blog Post",
|
||||
"title": "_Test Blog Post 2"
|
||||
"title": "_Test Blog Post 2",
|
||||
"published": 0
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ from frappe.translate import guess_language
|
|||
|
||||
class PageNotFoundError(Exception): pass
|
||||
|
||||
def render(path, http_status_code=None):
|
||||
def render(path=None, http_status_code=None):
|
||||
"""render html page"""
|
||||
path = resolve_path(path.strip("/ "))
|
||||
path = resolve_path(frappe.local.request.path.strip('/ '))
|
||||
data = None
|
||||
|
||||
# if in list of already known 404s, send it
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ def get_page_context(path):
|
|||
page_context = make_page_context(path)
|
||||
if can_cache(page_context.no_cache):
|
||||
page_context_cache[frappe.local.lang] = page_context
|
||||
|
||||
frappe.cache().hset("page_context", path, page_context_cache)
|
||||
|
||||
return page_context
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class WebsiteGenerator(Document):
|
|||
|
||||
def autoname(self):
|
||||
if not self.name and self.meta.autoname != "hash":
|
||||
self.name = self.make_route()
|
||||
self.name = self.scrub(self.get(self.website.page_title_field or "title"))
|
||||
|
||||
def onload(self):
|
||||
self.get("__onload").update({
|
||||
|
|
@ -69,7 +69,6 @@ class WebsiteGenerator(Document):
|
|||
"ref_doctype":self.doctype,
|
||||
"idx": self.idx,
|
||||
"docname": self.name,
|
||||
"route": route,
|
||||
"controller": get_module_name(self.doctype, self.meta.module),
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block page_content %}
|
||||
<!-- no-header -->
|
||||
<!-- {{ for_test }} -->
|
||||
|
||||
<div class="login-content">
|
||||
<form class="form-signin form-login" role="form">
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ def get_context(context):
|
|||
raise frappe.Redirect
|
||||
|
||||
# get settings from site config
|
||||
context.no_header = True
|
||||
context.for_test = 'login.html'
|
||||
context["title"] = "Login"
|
||||
context["disable_signup"] = frappe.utils.cint(frappe.db.get_value("Website Settings", "Website Settings", "disable_signup"))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue