diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_content.py | 14 | ||||
-rw-r--r-- | test/test_pages.py | 48 | ||||
-rw-r--r-- | test/test_truncate.py | 9 |
3 files changed, 59 insertions, 12 deletions
diff --git a/test/test_content.py b/test/test_content.py index 06ec97d..66342d9 100644 --- a/test/test_content.py +++ b/test/test_content.py @@ -11,7 +11,6 @@ class ContentTest(unittest.TestCase): self.blog_path = path.temppath('blog') self.undated_path = os.path.join(self.blog_path, 'foo.txt') self.dated_path = os.path.join(self.blog_path, '2018-01-01-foo.txt') - self.long_post_path = os.path.join(self.blog_path, 'bar.txt') self.normal_post_path = os.path.join(self.blog_path, 'baz.txt') self.md_post_path = os.path.join(self.blog_path, 'qux.md') self.no_md_post_path = os.path.join(self.blog_path, 'qux.txt') @@ -24,10 +23,6 @@ class ContentTest(unittest.TestCase): with open(self.dated_path, 'w') as f: f.write('hello world') - with open(self.long_post_path, 'w') as f: - self.long_text = ' \n'.join('word' + str(i) for i in range(50)) - f.write(self.long_text) - with open(self.normal_post_path, 'w') as f: f.write('<!-- a: 1 -->\n<!-- b: 2 -->\nFoo') @@ -45,13 +40,8 @@ class ContentTest(unittest.TestCase): self.mock_args = args def test_content_content(self): - content = makesite.read_content(self.long_post_path) - self.assertEqual(content['content'], self.long_text) - - def test_content_summary(self): - content = makesite.read_content(self.long_post_path) - expected_text = ' '.join('word' + str(i) for i in range(25)) - self.assertEqual(content['summary'], expected_text) + content = makesite.read_content(self.undated_path) + self.assertEqual(content['content'], 'hello world') def test_content_date(self): content = makesite.read_content(self.dated_path) diff --git a/test/test_pages.py b/test/test_pages.py index 9f52fb7..0fefdaa 100644 --- a/test/test_pages.py +++ b/test/test_pages.py @@ -22,6 +22,10 @@ class PagesTest(unittest.TestCase): f.write('<!-- tag: foo -->Foo') with open(os.path.join(self.blog_path, 'header-bar.txt'), 'w') as f: f.write('<!-- title: bar -->Bar') + with open(os.path.join(self.blog_path, 'placeholder-foo.txt'), 'w') as f: + f.write('<!-- title: foo -->{{ title }}:{{ author }}:Foo') + with open(os.path.join(self.blog_path, 'placeholder-bar.txt'), 'w') as f: + f.write('<!-- title: bar --><!-- render: yes -->{{ title }}:{{ author }}:Bar') def tearDown(self): shutil.rmtree(self.blog_path) @@ -77,3 +81,47 @@ class PagesTest(unittest.TestCase): self.assertEqual(f.read(), '{{ title }}:foo:Foo') with open(os.path.join(self.site_path, 'header-bar.txt')) as f: self.assertEqual(f.read(), 'bar:{{ tag }}:Bar') + + def test_content_no_rendering(self): + # Test that placeholders are not populated in content rendering + # by default. + src = os.path.join(self.blog_path, 'placeholder-foo.txt') + dst = os.path.join(self.site_path, '{{ slug }}.txt') + tpl = '<div>{{ content }}</div>' + makesite.make_pages(src, dst, tpl, author='Admin') + with open(os.path.join(self.site_path, 'placeholder-foo.txt')) as f: + self.assertEqual(f.read(), '<div>{{ title }}:{{ author }}:Foo</div>') + + def test_content_rendering_via_kwargs(self): + # Test that placeholders are populated in content rendering when + # requested in make_pages. + src = os.path.join(self.blog_path, 'placeholder-foo.txt') + dst = os.path.join(self.site_path, '{{ slug }}.txt') + tpl = '<div>{{ content }}</div>' + makesite.make_pages(src, dst, tpl, author='Admin', render='yes') + with open(os.path.join(self.site_path, 'placeholder-foo.txt')) as f: + self.assertEqual(f.read(), '<div>foo:Admin:Foo</div>') + + def test_content_rendering_via_header(self): + # Test that placeholders are populated in content rendering when + # requested in content header. + src = os.path.join(self.blog_path, 'placeholder-bar.txt') + dst = os.path.join(self.site_path, '{{ slug }}.txt') + tpl = '<div>{{ content }}</div>' + makesite.make_pages(src, dst, tpl, author='Admin') + with open(os.path.join(self.site_path, 'placeholder-bar.txt')) as f: + self.assertEqual(f.read(), '<div>bar:Admin:Bar</div>') + + def test_rendered_content_in_summary(self): + # Test that placeholders are populated in summary if and only if + # content rendering is enabled. + src = os.path.join(self.blog_path, 'placeholder*.txt') + post_dst = os.path.join(self.site_path, '{{ slug }}.txt') + list_dst = os.path.join(self.site_path, 'list.txt') + post_layout = '' + list_layout = '<div>{{ content }}</div>' + item_layout = '<p>{{ summary }}</p>' + posts = makesite.make_pages(src, post_dst, post_layout, author='Admin') + makesite.make_list(posts, list_dst, list_layout, item_layout) + with open(os.path.join(self.site_path, 'list.txt')) as f: + self.assertEqual(f.read(), '<div><p>{{ title }}:{{ author }}:Foo</p><p>bar:Admin:Bar</p></div>') diff --git a/test/test_truncate.py b/test/test_truncate.py new file mode 100644 index 0000000..3486d71 --- /dev/null +++ b/test/test_truncate.py @@ -0,0 +1,9 @@ +import unittest +import makesite + + +class TruncateTest(unittest.TestCase): + def test_truncate(self): + long_text = ' \n'.join('word' + str(i) for i in range(50)) + expected_text = ' '.join('word' + str(i) for i in range(25)) + self.assertEqual(makesite.truncate(long_text), expected_text) |