1
0
Fork 0
forked from github/pelican

Added tests for page generation.

Currently tests rst & markdown generation, ignoring pages w/ bad status, and status hidden vs published
This commit is contained in:
tBunnyMan 2012-07-04 10:06:53 -07:00
commit cf696939f8
6 changed files with 84 additions and 1 deletions

View file

@ -0,0 +1,8 @@
This is a test bad page
#######################
:status: invalid
The quick brown fox jumped over the lazy dog's back.
The status here is invalid, the page should not render.

View file

@ -0,0 +1,8 @@
This is a test hidden page
##########################
:status: hidden
The quick brown fox jumped over the lazy dog's back.
This page is hidden

View file

@ -0,0 +1,12 @@
title: This is a markdown test hidden page
status: hidden
Test Markdown File Header
=========================
Used for pelican test
---------------------
The quick brown fox jumped over the lazy dog's back.
This page is hidden

4
tests/TestPages/page.rst Normal file
View file

@ -0,0 +1,4 @@
This is a test page
###################
The quick brown fox jumped over the lazy dog's back.

View file

@ -0,0 +1,9 @@
title: This is a markdown test page
Test Markdown File Header
=========================
Used for pelican test
---------------------
The quick brown fox jumped over the lazy dog's back.

View file

@ -4,7 +4,7 @@ from mock import MagicMock
import os
import re
from pelican.generators import ArticlesGenerator, LessCSSGenerator
from pelican.generators import ArticlesGenerator, LessCSSGenerator, PagesGenerator
from pelican.settings import _DEFAULT_CONFIG
from .support import unittest, temporary_folder, skipIfNoExecutable
@ -94,6 +94,48 @@ class TestArticlesGenerator(unittest.TestCase):
write.assert_called_count == 0
class TestPageGenerator(unittest.TestCase):
"""
Every time you want to test for a new field;
Make sure the test pages in "TestPages" have all the fields
Add it to distilled in distill_pages_for_test
Then update the assertItemsEqual in test_generate_context to match expected
"""
def distill_pages_for_test(self, pages):
distilled = []
for page in pages:
distilled.append([
page.title,
page.status
]
)
return distilled
def test_generate_context(self):
settings = _DEFAULT_CONFIG.copy()
settings['PAGE_DIR'] = 'TestPages'
generator = PagesGenerator(settings.copy(), settings, CUR_DIR,
_DEFAULT_CONFIG['THEME'], None,
_DEFAULT_CONFIG['MARKUP'])
generator.generate_context()
pages = self.distill_pages_for_test(generator.pages)
hidden_pages = self.distill_pages_for_test(generator.hidden_pages)
pages_expected = [
[u'This is a test page', 'published'],
[u'This is a markdown test page', 'published']
]
hidden_pages_expected = [
[u'This is a test hidden page', 'hidden'],
[u'This is a markdown test hidden page', 'hidden']
]
self.assertItemsEqual(pages_expected,pages)
self.assertItemsEqual(hidden_pages_expected,hidden_pages)
class TestLessCSSGenerator(unittest.TestCase):
LESS_CONTENT = """