test_tag_cloud.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import unittest, os, sys
  2. import six
  3. import tag_cloud
  4. from pelican.generators import ArticlesGenerator
  5. from pelican.tests.support import get_settings
  6. from pelican.urlwrappers import Tag
  7. CUR_DIR = os.path.dirname(__file__)
  8. CONTENT_DIR = os.path.join(CUR_DIR, 'test_data')
  9. class TestTagCloudGeneration(unittest.TestCase):
  10. @classmethod
  11. def setUpClass(cls):
  12. cls._settings = get_settings(filenames={})
  13. cls._settings['DEFAULT_CATEGORY'] = 'Default'
  14. cls._settings['DEFAULT_DATE'] = (1970, 1, 1)
  15. cls._settings['READERS'] = {'asc': None}
  16. cls._settings['CACHE_CONTENT'] = False
  17. tag_cloud.set_default_settings(cls._settings)
  18. cls.generator = ArticlesGenerator(
  19. context=cls._settings.copy(), settings=cls._settings,
  20. path=CONTENT_DIR, theme=cls._settings['THEME'], output_path=None)
  21. cls.generator.generate_context()
  22. def test_tag_cloud_random(self):
  23. tag_cloud.generate_tag_cloud(self.generator)
  24. expected = [
  25. (Tag('plugins', self._settings), 1),
  26. (Tag('fun', self._settings), 4),
  27. (Tag('python', self._settings), 4),
  28. (Tag('pelican', self._settings), 1)
  29. ]
  30. six.assertCountEqual(self, self.generator.tag_cloud, expected)
  31. def test_tag_cloud_alphabetical(self):
  32. self.generator.settings['TAG_CLOUD_SORTING'] = 'alphabetically'
  33. tag_cloud.generate_tag_cloud(self.generator)
  34. expected = [
  35. (Tag('fun', self._settings), 4),
  36. (Tag('pelican', self._settings), 1),
  37. (Tag('plugins', self._settings), 1),
  38. (Tag('python', self._settings), 4)
  39. ]
  40. self.assertEqual(self.generator.tag_cloud, expected)
  41. def test_tag_cloud_alphabetical_rev(self):
  42. self.generator.settings['TAG_CLOUD_SORTING'] = 'alphabetically-rev'
  43. tag_cloud.generate_tag_cloud(self.generator)
  44. expected = [
  45. (Tag('python', self._settings), 4),
  46. (Tag('plugins', self._settings), 1),
  47. (Tag('pelican', self._settings), 1),
  48. (Tag('fun', self._settings), 4)
  49. ]
  50. self.assertEqual(self.generator.tag_cloud, expected)
  51. def test_tag_cloud_size(self):
  52. self.generator.settings['TAG_CLOUD_SORTING'] = 'size'
  53. tag_cloud.generate_tag_cloud(self.generator)
  54. expected = [
  55. (Tag('pelican', self._settings), 1),
  56. (Tag('plugins', self._settings), 1),
  57. (Tag('fun', self._settings), 4),
  58. (Tag('python', self._settings), 4)
  59. ]
  60. self.assertEqual(self.generator.tag_cloud, expected)
  61. def test_tag_cloud_size_rev(self):
  62. self.generator.settings['TAG_CLOUD_SORTING'] = 'size-rev'
  63. tag_cloud.generate_tag_cloud(self.generator)
  64. expected = [
  65. (Tag('fun', self._settings), 4),
  66. (Tag('python', self._settings), 4),
  67. (Tag('pelican', self._settings), 1),
  68. (Tag('plugins', self._settings), 1)
  69. ]
  70. self.assertEqual(self.generator.tag_cloud, expected)
  71. if __name__ == "__main__":
  72. unittest.main()