Index: test/local-reader.py
===================================================================
--- /dev/null
+++ test/local-reader.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# $Id: local-writer.py 7500 2012-08-22 19:38:14Z grubert $
+# Authors: Engelbert Gruber <grubert@users.sourceforge.net>
+# Toshio Kuratomi <toshio@fedoraproject.org>
+# Copyright: This module is put into the public domain.
+
+"""
+mini-reader to test get_reader_class with local reader
+"""
+
+import docutils
+from docutils import readers
+
+class Reader(readers.Reader):
+
+ supported = ('dummy',)
+ """Formats this reader supports."""
+
+ document = None
+ """A document tree."""
Index: test/test_readers/test_get_reader_class.py
===================================================================
--- /dev/null
+++ test/test_readers/test_get_reader_class.py
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+
+# $Id: test_get_writer_class.py 7500 2012-08-22 19:38:14Z grubert $
+# Author: grubert abadger1999
+# Maintainer: docutils-develop@lists.sourceforge.net
+# Copyright: This module has been placed in the public domain.
+
+"""
+test get_reader_class
+"""
+
+from __init__ import DocutilsTestSupport
+from docutils.readers import get_reader_class
+
+class GetReaderClassTestCase(DocutilsTestSupport.StandardTestCase):
+
+ def test_registered_reader(self):
+ rdr = get_reader_class('pep')
+ # raises ImportError on failure
+
+ def test_bogus_reader(self):
+ self.assertRaises(ImportError,
+ get_reader_class, 'nope')
+
+ def test_local_reader(self):
+ # requires local-reader.py in test directory (testroot)
+ wr = get_reader_class('local-reader')
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main()
+
Index: test/local-parser.py
===================================================================
--- /dev/null
+++ test/local-parser.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# $Id: local-writer.py 7500 2012-08-22 19:38:14Z grubert $
+# Authors: Engelbert Gruber <grubert@users.sourceforge.net>
+# Toshio Kuratomi <toshio@fedoraproject.org>
+# Copyright: This module is put into the public domain.
+
+"""
+mini-reader to test get_reader_class with local reader
+"""
+
+from docutils import parsers
+
+class Parser(parsers.Parser):
+
+ supported = ('dummy',)
+ """Formats this reader supports."""
+
+ def parser(self, inputstring, document):
+ self.setup_parse(inputstring, document)
+ document = dict()
+ self.finish_parse()
Index: test/test_parsers/test_get_parser_class.py
===================================================================
--- /dev/null
+++ test/test_parsers/test_get_parser_class.py
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+
+# $Id: test_get_writer_class.py 7500 2012-08-22 19:38:14Z grubert $
+# Author: grubert abadger1999
+# Maintainer: docutils-develop@lists.sourceforge.net
+# Copyright: This module has been placed in the public domain.
+
+"""
+test get_parser_class
+"""
+
+from __init__ import DocutilsTestSupport
+from docutils.parsers import get_parser_class
+
+class GetParserClassTestCase(DocutilsTestSupport.StandardTestCase):
+
+ def test_registered_parser(self):
+ rdr = get_parser_class('rst')
+ # raises ImportError on failure
+
+ def test_bogus_parser(self):
+ self.assertRaises(ImportError,
+ get_parser_class, 'nope')
+
+ def test_local_parser(self):
+ # requires local-parser.py in test directory (testroot)
+ wr = get_parser_class('local-parser')
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main()
+
Index: test/test_language.py
===================================================================
--- test/test_language.py.orig
+++ test/test_language.py
@@ -53,6 +53,11 @@ class LanguageTestSuite(DocutilsTestSupp
# test language tag normalization:
self.languages += ['en_gb', 'en_US', 'en-CA', 'de-DE', 'de-AT-1901',
'pt-BR', 'pt-foo-BR']
+ # test that locally created language files are also loaded.
+ # requires local_dummy_lang.py in test directory (testroot)
+ # The local_dummy_lang.py contains all the fields from both
+ # the docutils language tags and the parser.rst language tags
+ self.languages += ['local_dummy_lang']
def generateTests(self):
for language in self.languages:
Index: test/local_dummy_lang.py
===================================================================
--- /dev/null
+++ test/local_dummy_lang.py
@@ -0,0 +1,154 @@
+# $Id: en.py 4564 2006-05-21 20:44:42Z wiemann $
+# Author: David Goodger <goodger@python.org>
+# Copyright: This module has been placed in the public domain.
+
+# New language mappings are welcome. Before doing a new translation, please
+# read <http://docutils.sf.net/docs/howto/i18n.html>. Two files must be
+# translated for each language: one in docutils/languages, the other in
+# docutils/parsers/rst/languages.
+
+"""
+English-language mappings for language-dependent features of Docutils.
+"""
+
+__docformat__ = 'reStructuredText'
+
+labels = {
+ # fixed: language-dependent
+ 'author': 'dummy Author',
+ 'authors': 'dummy Authors',
+ 'organization': 'dummy Organization',
+ 'address': 'dummy Address',
+ 'contact': 'dummy Contact',
+ 'version': 'dummy Version',
+ 'revision': 'dummy Revision',
+ 'status': 'dummy Status',
+ 'date': 'dummy Date',
+ 'copyright': 'dummy Copyright',
+ 'dedication': 'dummy Dedication',
+ 'abstract': 'dummy Abstract',
+ 'attention': 'dummy Attention!',
+ 'caution': 'dummy Caution!',
+ 'danger': 'dummy !DANGER!',
+ 'error': 'dummy Error',
+ 'hint': 'dummy Hint',
+ 'important': 'dummy Important',
+ 'note': 'dummy Note',
+ 'tip': 'dummy Tip',
+ 'warning': 'dummy Warning',
+ 'contents': 'dummy Contents'}
+"""Mapping of node class name to label text."""
+
+bibliographic_fields = {
+ # language-dependent: fixed
+ 'dummy author': 'author',
+ 'dummy authors': 'authors',
+ 'dummy organization': 'organization',
+ 'dummy address': 'address',
+ 'dummy contact': 'contact',
+ 'dummy version': 'version',
+ 'dummy revision': 'revision',
+ 'dummy status': 'status',
+ 'dummy date': 'date',
+ 'dummy copyright': 'copyright',
+ 'dummy dedication': 'dedication',
+ 'dummy abstract': 'abstract'}
+"""English (lowcased) to canonical name mapping for bibliographic fields."""
+
+author_separators = [';', ',']
+"""List of separator strings for the 'Authors' bibliographic field. Tried in
+order."""
+
+directives = {
+ # language-dependent: fixed
+ 'dummy attention': 'attention',
+ 'dummy caution': 'caution',
+ 'dummy code': 'code',
+ 'dummy code-block': 'code',
+ 'dummy sourcecode': 'code',
+ 'dummy danger': 'danger',
+ 'dummy error': 'error',
+ 'dummy hint': 'hint',
+ 'dummy important': 'important',
+ 'dummy note': 'note',
+ 'dummy tip': 'tip',
+ 'dummy warning': 'warning',
+ 'dummy admonition': 'admonition',
+ 'dummy sidebar': 'sidebar',
+ 'dummy topic': 'topic',
+ 'dummy line-block': 'line-block',
+ 'dummy parsed-literal': 'parsed-literal',
+ 'dummy rubric': 'rubric',
+ 'dummy epigraph': 'epigraph',
+ 'dummy highlights': 'highlights',
+ 'dummy pull-quote': 'pull-quote',
+ 'dummy compound': 'compound',
+ 'dummy container': 'container',
+ #'dummy questions': 'questions',
+ 'dummy table': 'table',
+ 'dummy csv-table': 'csv-table',
+ 'dummy list-table': 'list-table',
+ #'dummy qa': 'questions',
+ #'dummy faq': 'questions',
+ 'dummy meta': 'meta',
+ 'dummy math': 'math',
+ #'dummy imagemap': 'imagemap',
+ 'dummy image': 'image',
+ 'dummy figure': 'figure',
+ 'dummy include': 'include',
+ 'dummy raw': 'raw',
+ 'dummy replace': 'replace',
+ 'dummy unicode': 'unicode',
+ 'dummy date': 'date',
+ 'dummy class': 'class',
+ 'dummy role': 'role',
+ 'dummy default-role': 'default-role',
+ 'dummy title': 'title',
+ 'dummy contents': 'contents',
+ 'dummy sectnum': 'sectnum',
+ 'dummy section-numbering': 'sectnum',
+ 'dummy header': 'header',
+ 'dummy footer': 'footer',
+ #'dummy footnotes': 'footnotes',
+ #'dummy citations': 'citations',
+ 'dummy target-notes': 'target-notes',
+ 'dummy restructuredtext-test-directive': 'restructuredtext-test-directive'}
+"""English name to registered (in directives/__init__.py) directive name
+mapping."""
+
+roles = {
+ # language-dependent: fixed
+ 'dummy abbreviation': 'abbreviation',
+ 'dummy ab': 'abbreviation',
+ 'dummy acronym': 'acronym',
+ 'dummy ac': 'acronym',
+ 'dummy code': 'code',
+ 'dummy index': 'index',
+ 'dummy i': 'index',
+ 'dummy subscript': 'subscript',
+ 'dummy sub': 'subscript',
+ 'dummy superscript': 'superscript',
+ 'dummy sup': 'superscript',
+ 'dummy title-reference': 'title-reference',
+ 'dummy title': 'title-reference',
+ 'dummy t': 'title-reference',
+ 'dummy pep-reference': 'pep-reference',
+ 'dummy pep': 'pep-reference',
+ 'dummy rfc-reference': 'rfc-reference',
+ 'dummy rfc': 'rfc-reference',
+ 'dummy emphasis': 'emphasis',
+ 'dummy strong': 'strong',
+ 'dummy literal': 'literal',
+ 'dummy math': 'math',
+ 'dummy named-reference': 'named-reference',
+ 'dummy anonymous-reference': 'anonymous-reference',
+ 'dummy footnote-reference': 'footnote-reference',
+ 'dummy citation-reference': 'citation-reference',
+ 'dummy substitution-reference': 'substitution-reference',
+ 'dummy target': 'target',
+ 'dummy uri-reference': 'uri-reference',
+ 'dummy uri': 'uri-reference',
+ 'dummy url': 'uri-reference',
+ 'dummy raw': 'raw',}
+"""Mapping of English role names to canonical role names for interpreted text.
+"""