|
- # -*- coding: utf-8 -*-
- """
- Use nose
- `$ pip install nose`
- `$ nosetests`
- """
- from textwrap import dedent
-
- from hyde.generator import Generator
- from hyde.site import Site
-
- from fswrap import File
-
- TEST_SITE = File(__file__).parent.parent.child_folder('_test')
-
-
- class TestPaginator(object):
-
- def setUp(self):
- TEST_SITE.make()
- TEST_SITE.parent.child_folder(
- 'sites/test_paginator').copy_contents_to(TEST_SITE)
- self.s = Site(TEST_SITE)
- self.deploy = TEST_SITE.child_folder('deploy')
-
- self.gen = Generator(self.s)
- self.gen.load_site_if_needed()
- self.gen.load_template_if_needed()
- self.gen.generate_all()
-
- def tearDown(self):
- TEST_SITE.delete()
-
- def test_page_no_paginator(self):
- f = File(self.deploy.child('empty.txt'))
- assert f.exists
-
- def test_pages_of_one(self):
- pages = ['pages_of_one.txt', 'page2/pages_of_one.txt',
- 'page3/pages_of_one.txt', 'page4/pages_of_one.txt']
- files = [File(self.deploy.child(p)) for p in pages]
- for f in files:
- assert f.exists
-
- page5 = File(self.deploy.child('page5/pages_of_one.txt'))
- assert not page5.exists
-
- def test_pages_of_one_content(self):
- expected_page1_content = dedent('''\
- Another Sad Post
-
- /page2/pages_of_one.txt''')
- expected_page2_content = dedent('''\
- A Happy Post
- /pages_of_one.txt
- /page3/pages_of_one.txt''')
- expected_page3_content = dedent('''\
- An Angry Post
- /page2/pages_of_one.txt
- /page4/pages_of_one.txt''')
- expected_page4_content = dedent('''\
- A Sad Post
- /page3/pages_of_one.txt
- ''')
-
- page1 = self.deploy.child('pages_of_one.txt')
- content = File(page1).read_all()
- assert expected_page1_content == content
-
- page2 = self.deploy.child('page2/pages_of_one.txt')
- content = File(page2).read_all()
- assert expected_page2_content == content
-
- page3 = self.deploy.child('page3/pages_of_one.txt')
- content = File(page3).read_all()
- assert expected_page3_content == content
-
- page4 = self.deploy.child('page4/pages_of_one.txt')
- content = File(page4).read_all()
- assert expected_page4_content == content
-
- def test_pages_of_ten(self):
- page1 = self.deploy.child('pages_of_ten.txt')
- page2 = self.deploy.child('page2/pages_of_ten.txt')
-
- assert File(page1).exists
- assert not File(page2).exists
-
- def test_pages_of_ten_depends(self):
- depends = self.gen.deps['pages_of_ten.txt']
-
- assert depends
- assert len(depends) == 4
- assert 'blog/sad-post.html' in depends
- assert 'blog/another-sad-post.html' in depends
- assert 'blog/angry-post.html' in depends
- assert 'blog/happy-post.html' in depends
-
- def test_pages_of_ten_content(self):
- expected_content = dedent('''\
- Another Sad Post
- A Happy Post
- An Angry Post
- A Sad Post
- ''')
-
- page = self.deploy.child('pages_of_ten.txt')
- content = File(page).read_all()
- assert expected_content == content
-
- def test_pages_of_one_depends(self):
- depends = self.gen.deps['pages_of_one.txt']
-
- assert depends
- assert len(depends) == 4
- assert 'blog/sad-post.html' in depends
- assert 'blog/another-sad-post.html' in depends
- assert 'blog/angry-post.html' in depends
- assert 'blog/happy-post.html' in depends
-
- def test_custom_file_pattern(self):
- page1 = self.deploy.child('custom_file_pattern.txt')
- page2 = self.deploy.child('custom_file_pattern-2.txt')
-
- assert File(page1).exists
- assert File(page2).exists
|