123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- import os
- from pelican.generators import ArticlesGenerator
- from pelican.tests.support import unittest, get_settings
- import sub_parts
- CUR_DIR = os.path.dirname(__file__)
- class TestSubParts(unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- settings = get_settings(filenames={})
- settings['PATH'] = os.path.join(CUR_DIR, 'test_data')
- settings['AUTHOR'] = 'Me'
- settings['DEFAULT_DATE'] = (1970, 1, 1)
- settings['DEFAULT_CATEGORY'] = 'Default'
- settings['FILENAME_METADATA'] = '(?P<slug>[^.]+)'
- settings['PLUGINS'] = [sub_parts]
- settings['CACHE_CONTENT'] = False
- cls.generator = ArticlesGenerator(
- context=settings.copy(), settings=settings,
- path=settings['PATH'], theme=settings['THEME'], output_path=None)
- cls.generator.generate_context()
- cls.all_articles = list(cls.generator.articles)
- sub_parts.patch_subparts(cls.generator)
- def test_all_articles(self):
- self.assertEqual(
- sorted(['noparent', 'parent',
- 'parent--explicit', 'parent--implicit']),
- sorted([a.slug for a in self.all_articles]))
- def test_articles(self):
- self.assertEqual(
- sorted(['noparent', 'parent']),
- sorted([a.slug for a in self.generator.articles]))
- def test_dates(self):
- self.assertEqual(
- sorted(['noparent', 'parent']),
- sorted([a.slug for a in self.generator.dates]))
- def test_categories(self):
- self.assertEqual(
- sorted(['noparent', 'parent']),
- sorted([a.slug for a in self.generator.categories[0][1]]))
- def test_tags(self):
- self.assertEqual(
- sorted([a.slug for a in self.all_articles]),
- sorted([a.slug for a in self.generator.tags['atag']]))
- def test_authors(self):
- self.assertEqual(
- sorted([a.slug for a in self.all_articles]),
- sorted([a.slug for a in self.generator.authors[0][1]]))
- def test_subparts(self):
- for a in self.all_articles:
- if a.slug == 'parent':
- self.assertTrue(hasattr(a, 'subparts'))
- self.assertEqual(
- sorted(['parent--explicit', 'parent--implicit']),
- sorted([a.slug for a in a.subparts]))
- else:
- self.assertFalse(hasattr(a, 'subparts'))
- def test_subpart_of(self):
- for a in self.all_articles:
- if '--' in a.slug:
- self.assertTrue(hasattr(a, 'subpart_of'))
- self.assertEqual('parent', a.subpart_of.slug)
- else:
- self.assertFalse(hasattr(a, 'subpart_of'))
- def test_subtitle(self):
- for a in self.all_articles:
- if '--' in a.slug:
- self.assertTrue(hasattr(a, 'subtitle'))
- self.assertEqual(a.title,
- a.subtitle + ', ' + a.subpart_of.title)
- class TestSubPartsPhotos(unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- settings = get_settings(filenames={})
- settings['PATH'] = os.path.join(CUR_DIR, 'test_data')
- settings['AUTHOR'] = 'Me'
- settings['DEFAULT_DATE'] = (1970, 1, 1)
- settings['DEFAULT_CATEGORY'] = 'Default'
- settings['FILENAME_METADATA'] = '(?P<slug>[^.]+)'
- settings['PLUGINS'] = [sub_parts]
- settings['CACHE_CONTENT'] = False
- cls.generator = ArticlesGenerator(
- context=settings.copy(), settings=settings,
- path=settings['PATH'], theme=settings['THEME'], output_path=None)
- cls.generator.generate_context()
- cls.all_articles = list(cls.generator.articles)
- for a in cls.all_articles:
- a.photo_gallery = [('i.jpg', 'i.jpg', 'it.jpg', '', '')]
- sub_parts.patch_subparts(cls.generator)
- def test_subphotos(self):
- for a in self.all_articles:
- if a.slug == 'parent':
- self.assertTrue(hasattr(a, 'subphotos'))
- self.assertEqual(3, a.subphotos)
- else:
- self.assertFalse(hasattr(a, 'subphotos'))
- if __name__ == '__main__':
- unittest.main()
|