test_tag_cloud.py 3.9 KB

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