mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Start working on the testsuite.
This commit is contained in:
parent
5af56793eb
commit
bb96e253c9
2 changed files with 70 additions and 0 deletions
54
pelican/tests/test_contents.py
Normal file
54
pelican/tests/test_contents.py
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
from unittest2 import TestCase
|
||||||
|
|
||||||
|
from pelican.contents import Page
|
||||||
|
from pelican.settings import DEFAULT_CONFIG
|
||||||
|
|
||||||
|
class TestPage(TestCase):
|
||||||
|
|
||||||
|
def test_use_args(self):
|
||||||
|
# creating a page with arguments passed to the connstructor should use
|
||||||
|
# them to initialise object's attributes
|
||||||
|
metadata = {'foo': 'bar', 'foobar': 'baz'}
|
||||||
|
page = Page('content', metadatas=metadata)
|
||||||
|
for key, value in metadata.items():
|
||||||
|
self.assertTrue(hasattr(page, key))
|
||||||
|
self.assertEqual(value, getattr(page, key))
|
||||||
|
self.assertEqual(page.content, "content")
|
||||||
|
|
||||||
|
def test_mandatory_properties(self):
|
||||||
|
# if the title is not set, must throw an exception
|
||||||
|
page = Page('content')
|
||||||
|
with self.assertRaises(NameError) as cm:
|
||||||
|
page.check_properties()
|
||||||
|
|
||||||
|
page = Page('content', metadatas={'title': 'foobar'})
|
||||||
|
page.check_properties()
|
||||||
|
|
||||||
|
|
||||||
|
def test_slug(self):
|
||||||
|
# if a title is given, it should be used to generate the slug
|
||||||
|
page = Page('content', {'title': 'foobar is foo'})
|
||||||
|
self.assertEqual(page.slug, 'foobar-is-foo')
|
||||||
|
|
||||||
|
|
||||||
|
def test_defaultlang(self):
|
||||||
|
# if no lang is given, default to the default one
|
||||||
|
page = Page('content')
|
||||||
|
self.assertEqual(page.lang, DEFAULT_CONFIG['DEFAULT_LANG'])
|
||||||
|
|
||||||
|
# it is possible to specify the lang in the metadata infos
|
||||||
|
page = Page('content', {'lang': 'fr'})
|
||||||
|
self.assertEqual(page.lang, 'fr')
|
||||||
|
|
||||||
|
def test_save_as(self):
|
||||||
|
# if a lang is not the default lang, save_as should be set accordingly
|
||||||
|
page = Page('content', {'title': 'foobar', 'lang': 'fr'}) #default lang is en
|
||||||
|
self.assertEqual(page.save_as, "foobar-fr.html")
|
||||||
|
|
||||||
|
# otherwise, if a title is defined, save_as should be set
|
||||||
|
page = Page('content', {'title': 'foobar'})
|
||||||
|
page.save_as = 'foobar.html'
|
||||||
|
|
||||||
|
# if no title is given, there is no save_as
|
||||||
|
page = Page('content')
|
||||||
|
self.assertFalse(hasattr(page, 'save_as'))
|
||||||
16
pelican/tests/test_settings.py
Normal file
16
pelican/tests/test_settings.py
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
from unittest2 import TestCase
|
||||||
|
|
||||||
|
from pelican.settings import read_settings, DEFAULT_CONFIG
|
||||||
|
|
||||||
|
class SettingsTest(TestCase):
|
||||||
|
|
||||||
|
def test_read_settings(self):
|
||||||
|
# providing no file should return the default values
|
||||||
|
settings = read_settings(None)
|
||||||
|
self.assertDictEqual(settings, DEFAULT_CONFIG)
|
||||||
|
|
||||||
|
# providing a file should read it, replace the default values and append
|
||||||
|
# new values to the settings, if any
|
||||||
|
settings = read_settings(mock)
|
||||||
|
self.assertIn('key', settings)
|
||||||
|
self.assertEqual(settings['KEY'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue