test_ctags_generator.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/sh
  2. import os, shutil
  3. from tempfile import mkdtemp
  4. from pelican.generators import ArticlesGenerator
  5. from pelican.tests.support import get_settings, unittest
  6. from pelican.writers import Writer
  7. from ctags_generator import generate_ctags
  8. TEST_CONTENT_DIR = './test_content/'
  9. class TestCtagsGenerator(unittest.TestCase):
  10. def test_generate_ctags(self):
  11. settings = get_settings(filenames={})
  12. settings['GENERATE_CTAGS'] = True
  13. generator = ArticlesGenerator(
  14. context=settings.copy(), settings=settings,
  15. path=TEST_CONTENT_DIR, theme=settings['THEME'], output_path=None)
  16. generator.generate_context()
  17. writer = Writer(None, settings=settings)
  18. generate_ctags(generator, writer)
  19. output_path = os.path.join(TEST_CONTENT_DIR, 'tags')
  20. self.assertTrue(os.path.exists(output_path))
  21. try:
  22. # output content is correct
  23. with open(output_path, 'r') as output_file:
  24. ctags = [l.split('\t')[0] for l in output_file.readlines()]
  25. self.assertEqual(['bar', 'bar', 'foo', 'foo', 'foobar', 'foobar', 'マック', 'パイソン'], ctags)
  26. finally:
  27. os.remove(output_path)
  28. if __name__ == '__main__':
  29. unittest.main()