Source code for unit.help.helppagerepository

# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg
#
# This file is part of Timeline.
#
# Timeline is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Timeline is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Timeline.  If not, see <http://www.gnu.org/licenses/>.


from timelinelib.test.cases.unit import UnitTestCase
from timelinelib.help.helppagerepository import HelpPageRepository
from timelinelib.help.helppagerepository import HelpPage


HOME_PAGE_ID = "contents"
HELP_RESOURCES_ROOT_DIR = "root_dir"
PAGE_PREFIX = "page:"
PAGE_ID = "id"
PAGE_HEADER = "header"
PAGE_BODY = "body"


[docs]class HelpPageRepositoryUnitTestCase(UnitTestCase):
[docs] def setUp(self): UnitTestCase.setUp(self) self.repository = HelpPageRepository(HOME_PAGE_ID, HELP_RESOURCES_ROOT_DIR, PAGE_PREFIX)
[docs]class describe_help_page_repoistory_instansiation(HelpPageRepositoryUnitTestCase):
[docs] def test_has_an_empty_page_dictionary_when_instatiated(self): self.assertEqual({}, self.repository.help_pages)
[docs] def test_is_given_a_home_page_id_when_instatiated(self): self.assertEqual(HOME_PAGE_ID, self.repository.home_page)
[docs] def test_is_given_a_help_resources_root_dir_when_instatiated(self): self.assertEqual(HELP_RESOURCES_ROOT_DIR, self.repository.help_resources_root_dir)
[docs] def test_is_given_a_page_prefix_when_instatiated(self): self.assertEqual(PAGE_PREFIX, self.repository.page_prefix)
[docs]class describe_help_page_repoistory_page_creation(HelpPageRepositoryUnitTestCase):
[docs] def test_a_page_can_be_created_and_saved(self): self.repository.install_page(None, None, None, None) self.assertEqual(1, len(self.repository.help_pages))
[docs] def test_created_pages_are_of_correct_type(self): self.repository.install_page(None, None, None, None) keys = self.repository.help_pages.keys() page = self.repository.help_pages[next(iter(keys))] self.assertTrue(isinstance(page, HelpPage))
[docs]class describe_help_page_repoistory_page_retrieval(HelpPageRepositoryUnitTestCase):
[docs] def test_pages_can_be_retrieved_by_page_id(self): self.repository.install_page(PAGE_ID, PAGE_HEADER, PAGE_BODY, []) page = self.repository.get_page(PAGE_ID) self.assertTrue(page)
[docs] def test_pages_not_crated_cannot_be_retrieved(self): page = self.repository.get_page(PAGE_ID) self.assertFalse(page)
[docs] def test_pages_can_be_found_by_text_search_in_header(self): self.repository.install_page(PAGE_ID, PAGE_HEADER, PAGE_BODY, []) pages = self.repository._find_pages(PAGE_HEADER) self.assertEqual(1, len(pages)) self.assertEqual(PAGE_HEADER, pages[0].header)
[docs]class HelpPageUnitTestCase(UnitTestCase):
[docs] def setUp(self): UnitTestCase.setUp(self) self.repository = HelpPageRepository(HOME_PAGE_ID, HELP_RESOURCES_ROOT_DIR, PAGE_PREFIX) self.help_page = HelpPage(self.repository, PAGE_ID, PAGE_HEADER, PAGE_BODY, [])
[docs]class describe_help_page(HelpPageUnitTestCase):
[docs] def test_has_ref_to_repository(self): self.assertEqual(self.repository, self.help_page.help_page_repository)
[docs] def test_can_be_rendered_to_html(self): self.assertEqual("<h1>%s</h1><p>%s</p>" % (PAGE_HEADER, PAGE_BODY), self.help_page.render_to_html())