72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
|
#!/usr/bin/env python
|
||
|
import os, sys, shutil, errno, unittest
|
||
|
from ConfigParser import ConfigParser
|
||
|
from StringIO import StringIO
|
||
|
import planet
|
||
|
|
||
|
class MainTest(unittest.TestCase):
|
||
|
|
||
|
def test_minimal(self):
|
||
|
configp = ConfigParser()
|
||
|
my_planet = planet.Planet(configp)
|
||
|
my_planet.run("Planet Name", "http://example.com", [])
|
||
|
|
||
|
def test_onefeed(self):
|
||
|
configp = ConfigParser()
|
||
|
configp.readfp(StringIO("""[http://www.example.com/]
|
||
|
name = Mary
|
||
|
"""))
|
||
|
my_planet = planet.Planet(configp)
|
||
|
my_planet.run("Planet Name", "http://example.com", [], True)
|
||
|
|
||
|
|
||
|
def test_generateall(self):
|
||
|
configp = ConfigParser()
|
||
|
configp.readfp(StringIO("""[http://www.example.com/]
|
||
|
name = Mary
|
||
|
"""))
|
||
|
my_planet = planet.Planet(configp)
|
||
|
my_planet.run("Planet Name", "http://example.com", [], True)
|
||
|
basedir = os.path.join(os.path.dirname(os.path.abspath(sys.modules[__name__].__file__)), 'data')
|
||
|
os.mkdir(self.output_dir)
|
||
|
t_file_names = ['simple', 'simple2']
|
||
|
self._remove_cached_templates(basedir, t_file_names)
|
||
|
t_files = [os.path.join(basedir, t_file) + '.tmpl' for t_file in t_file_names]
|
||
|
my_planet.generate_all_files(t_files, "Planet Name",
|
||
|
'http://example.com/', 'http://example.com/feed/', 'Mary', 'mary@example.com')
|
||
|
for file_name in t_file_names:
|
||
|
name = os.path.join(self.output_dir, file_name)
|
||
|
content = file(name).read()
|
||
|
self.assertEqual(content, 'Mary\n')
|
||
|
|
||
|
def _remove_cached_templates(self, basedir, template_files):
|
||
|
"""
|
||
|
Remove the .tmplc files and force them to be rebuilt.
|
||
|
|
||
|
This is required mainly so that the tests don't fail in mysterious ways in
|
||
|
directories that have been moved, eg 'branches/my-branch' to
|
||
|
'branches/mysterious-branch' -- the .tmplc files seem to remember their full
|
||
|
path
|
||
|
"""
|
||
|
for file in template_files:
|
||
|
path = os.path.join(basedir, file + '.tmplc')
|
||
|
try:
|
||
|
os.remove(path)
|
||
|
except OSError, e:
|
||
|
# we don't care about the file not being there, we care about
|
||
|
# everything else
|
||
|
if e.errno != errno.ENOENT:
|
||
|
raise
|
||
|
|
||
|
def setUp(self):
|
||
|
super(MainTest, self).setUp()
|
||
|
self.output_dir = 'output'
|
||
|
|
||
|
def tearDown(self):
|
||
|
super(MainTest, self).tearDown()
|
||
|
shutil.rmtree(self.output_dir, ignore_errors = True)
|
||
|
shutil.rmtree('cache', ignore_errors = True)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|