def test_convert(self): self.maxDiff = None pages_yaml_old = """ pages: - ['index.md', 'Home'] - ['user-guide/writing-your-docs.md', 'User Guide'] - ['user-guide/styling-your-docs.md', 'User Guide'] - ['about/license.md', 'About', 'License'] - ['about/release-notes.md', 'About'] - ['about/contributing.md', 'About', 'Contributing'] - ['help/contributing.md', 'Help', 'Contributing'] - ['support.md'] - ['cli.md', 'CLI Guide'] """ pages_yaml_new = """ pages: - Home: index.md - User Guide: - user-guide/writing-your-docs.md - user-guide/styling-your-docs.md - About: - License: about/license.md - about/release-notes.md - Contributing: about/contributing.md - Help: - Contributing: help/contributing.md - support.md - CLI Guide: cli.md """ self.assertEqual( legacy.pages_compat_shim(yaml.load(pages_yaml_old)['pages']), yaml.load(pages_yaml_new)['pages'])
def run_validation(self, value): if not isinstance(value, list): raise ValidationError("Expected a list, got {0}".format( type(value))) if len(value) == 0: return # TODO: Remove in 1.0 config_types = set(type(l) for l in value) if config_types.issubset(set([ str, OrderedDict, ])): return value if config_types.issubset(set([ str, list, ])): return legacy.pages_compat_shim(value) raise ValidationError("Invalid pages config.")
def test_convert(self): self.maxDiff = None pages_yaml_old = """ pages: - ['index.md', 'Home'] - ['user-guide/writing-your-docs.md', 'User Guide'] - ['user-guide/styling-your-docs.md', 'User Guide'] - ['about/license.md', 'About', 'License'] - ['about/release-notes.md', 'About'] - ['about/contributing.md', 'About', 'Contributing'] - ['help/contributing.md', 'Help', 'Contributing'] - ['support.md'] - ['cli.md', 'CLI Guide'] """ pages_yaml_new = """ pages: - Home: index.md - User Guide: - user-guide/writing-your-docs.md - user-guide/styling-your-docs.md - About: - License: about/license.md - about/release-notes.md - Contributing: about/contributing.md - Help: - Contributing: help/contributing.md - support.md - CLI Guide: cli.md """ self.assertEqual( legacy.pages_compat_shim(utils.yaml_load(pages_yaml_old)['pages']), utils.yaml_load(pages_yaml_new)['pages'])
def test_walk_simple_toc(self): pages = legacy.pages_compat_shim([('index.md', 'Home'), ('about.md', 'About')]) expected = [ dedent(""" Home - / [*] About - /about/ """), dedent(""" Home - / About - /about/ [*] """) ] site_navigation = nav.SiteNavigation(pages) for index, page in enumerate(site_navigation.walk_pages()): self.assertEqual(str(site_navigation).strip(), expected[index])
def test_walk_simple_toc(self): pages = legacy.pages_compat_shim([ ('index.md', 'Home'), ('about.md', 'About') ]) expected = [ dedent(""" Home - / [*] About - /about/ """), dedent(""" Home - / About - /about/ [*] """) ] site_navigation = nav.SiteNavigation(pages) for index, page in enumerate(site_navigation.walk_pages()): self.assertEqual(str(site_navigation).strip(), expected[index])
def test_convert_no_home(self): self.maxDiff = None pages_yaml_old = """ pages: - ['index.md'] - ['about.md', 'About'] """ pages_yaml_new = """ pages: - index.md - About: about.md """ self.assertEqual( legacy.pages_compat_shim(yaml.load(pages_yaml_old)['pages']), yaml.load(pages_yaml_new)['pages'])
def test_convert_no_home(self): self.maxDiff = None pages_yaml_old = """ pages: - ['index.md'] - ['about.md', 'About'] """ pages_yaml_new = """ pages: - index.md - About: about.md """ self.assertEqual( legacy.pages_compat_shim(utils.yaml_load(pages_yaml_old)['pages']), utils.yaml_load(pages_yaml_new)['pages'])
def run_validation(self, value): if not isinstance(value, list): raise ValidationError( "Expected a list, got {0}".format(type(value))) if len(value) == 0: return # TODO: Remove in 1.0 config_types = set(type(l) for l in value) if config_types.issubset(set([str, dict, ])): return value if config_types.issubset(set([str, list, ])): return legacy.pages_compat_shim(value) raise ValidationError("Invalid pages config.")
def run_validation(self, value): if not isinstance(value, list): raise ValidationError( "Expected a list, got {0}".format(type(value))) if len(value) == 0: return # TODO: Remove in 1.0 config_types = set(type(l) for l in value) if config_types.issubset({utils.text_type, dict, str}): return value if config_types.issubset({utils.text_type, list, str}): return legacy.pages_compat_shim(value) raise ValidationError("Invalid pages config. {0} {1}".format( config_types, {utils.text_type, dict} ))
def test_indented_toc_missing_child_title(self): pages = legacy.pages_compat_shim([ ('index.md', 'Home'), ('api-guide/running.md', 'API Guide', 'Running'), ('api-guide/testing.md', 'API Guide'), ('api-guide/debugging.md', 'API Guide', 'Debugging'), ('about/release-notes.md', 'About', 'Release notes'), ('about/license.md', 'About', 'License') ]) expected = dedent(""" Home - / API Guide Running - /api-guide/running/ Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ About Release notes - /about/release-notes/ License - /about/license/ """) site_navigation = nav.SiteNavigation(pages) self.assertEqual(str(site_navigation).strip(), expected) self.assertEqual(len(site_navigation.nav_items), 3) self.assertEqual(len(site_navigation.pages), 6)
def test_walk_indented_toc(self): pages = legacy.pages_compat_shim([ ('index.md', 'Home'), ('api-guide/running.md', 'API Guide', 'Running'), ('api-guide/testing.md', 'API Guide', 'Testing'), ('api-guide/debugging.md', 'API Guide', 'Debugging'), ('about/release-notes.md', 'About', 'Release notes'), ('about/license.md', 'About', 'License') ]) expected = [ dedent(""" Home - / [*] API Guide Running - /api-guide/running/ Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ About Release notes - /about/release-notes/ License - /about/license/ """), dedent(""" Home - / API Guide [*] Running - /api-guide/running/ [*] Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ About Release notes - /about/release-notes/ License - /about/license/ """), dedent(""" Home - / API Guide [*] Running - /api-guide/running/ Testing - /api-guide/testing/ [*] Debugging - /api-guide/debugging/ About Release notes - /about/release-notes/ License - /about/license/ """), dedent(""" Home - / API Guide [*] Running - /api-guide/running/ Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ [*] About Release notes - /about/release-notes/ License - /about/license/ """), dedent(""" Home - / API Guide Running - /api-guide/running/ Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ About [*] Release notes - /about/release-notes/ [*] License - /about/license/ """), dedent(""" Home - / API Guide Running - /api-guide/running/ Testing - /api-guide/testing/ Debugging - /api-guide/debugging/ About [*] Release notes - /about/release-notes/ License - /about/license/ [*] """) ] site_navigation = nav.SiteNavigation(pages) for index, page in enumerate(site_navigation.walk_pages()): self.assertEqual(str(site_navigation).strip(), expected[index])