- From: Olivier Thereaux via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 30 Jan 2008 07:05:42 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2008/link-testsuite/harness/lib
In directory hutz:/tmp/cvs-serv1987
Added Files:
Documentation.py
Log Message:
simple template engine class using jinja http://jinja.pocoo.org
--- NEW FILE: Documentation.py ---
#!/usr/bin/env python
# encoding: utf-8
"""
Documentation.py
Generate Link Test Suite index and documentation
Created by olivier Thereaux on 2008-01-30.
Copyright (c) 2008 W3C. Licensed under the W3C Software License
http://www.w3.org/Consortium/Legal/copyright-software
"""
import sys
import os
import unittest
import LinkTestCase
import datetime
class Documentation:
def __init__(self, type=None):
ok_types = ['test', 'index']
if type in ok_types:
self.type = type
else:
self.type = 'index'
self.test_collections = list()
def addCollection(self, test_collection):
if isinstance(test_collection, LinkTestCase.LinkTestCollection) == 0:
raise TypeError("not a proper test collection")
else:
self.test_collections.append(test_collection)
def generate(self, template_path=None):
"""pass through template engine"""
import jinja,datetime
if template_path == None:
template_path= os.path.abspath('..')
template_path=os.path.join(template_path, "templates")
template_engine = jinja.Environment(loader=jinja.FileSystemLoader(template_path))
template = template_engine.get_template(os.path.join(self.type+'.html'))
return template.render(collections=self.test_collections,
year=str(datetime.date.today().year))
class DocumentationTests(unittest.TestCase):
def test_has_jinja(self):
try:
import jinja
except ImportError:
self.fail("you need to install the jinja templating system -- http://jinja.pocoo.org/download")
def test_init(self):
"""initialize a Documentation Generator"""
generator = Documentation()
self.assertEquals(generator.type, 'index')
def test_init_default_fallback(self):
"""initialize a Documentation Generator with a bogus type"""
generator = Documentation(type="grut")
self.assertEquals(generator.type, 'index')
def test_addCollection(self):
"""add test collection"""
generator = Documentation()
test_col = LinkTestCase.LinkTestCollection()
generator.addCollection(test_col)
self.assertEquals(len(generator.test_collections), 1)
def test_boguscollection(self):
"""add bogus test collection and raise error"""
generator = Documentation()
test_col = 5
self.assertRaises(TypeError, Documentation.addCollection, generator, test_col)
def test_generate_test(self):
"""generate collections index without any collection"""
generator = Documentation('test')
self.assertEqual(generator.generate(), str(datetime.date.today().year))
if __name__ == '__main__':
unittest.main()
Received on Wednesday, 30 January 2008 07:05:55 UTC