#! /usr/bin/env python # $Id: test_interpreted.py 7267 2011-12-20 14:14:21Z milde $ # Author: David Goodger # Copyright: This module has been placed in the public domain. """ Tests for interpreted text in docutils/parsers/rst/states.py. """ from .__init__ import DocutilsTestSupport from docutils.utils.code_analyzer import with_pygments def suite(): s = DocutilsTestSupport.ParserTestSuite() if not with_pygments: del(totest['code-parsing']) s.generateTests(totest) return s totest = {} totest['basics'] = [ ["""\ `interpreted` """, """\ interpreted """], ["""\ :title:`interpreted` """, """\ interpreted """], ["""\ `interpreted`:title: """, """\ interpreted """], ["""\ `interpreted \`title`` """, """\ interpreted `title` """], ["""\ :title:`:not-role: interpreted` """, """\ :not-role: interpreted """], ["""\ `interpreted` but not \\`interpreted` [`] or ({[`] or [`]}) or ` """, """\ interpreted but not `interpreted` [`] or ({[`] or [`]}) or ` """], ["""\ `interpreted`-text `interpreted`: text `interpreted`:text `text`'s interpreted """, """\ interpreted -text \n\ interpreted : text \n\ interpreted :text \n\ text 's interpreted """], ["""\ `interpreted without closing backquote """, """\ ` interpreted without closing backquote Inline interpreted text or phrase reference start-string without end-string. """], ["""\ `interpreted`:not a role if it contains whitespace: """, """\ interpreted :not a role if it contains whitespace: """], ["""\ :title:`` (empty interpteted text not recognized) """, """\ :title:`` (empty interpteted text not recognized) """], ["""\ :title:`\ ` (interpteted text containing empty string) """, """\ (interpteted text containing empty string) """], ["""\ `\ `:title: (interpteted text containing empty string (postfix)) """, """\ (interpteted text containing empty string (postfix)) """], ["""\ :title:`\ non-empty` """, """\ non-empty """], ["""\ :title:`\ ` (trailing unquoted space) """, """\ :title: ` ` (trailing unquoted space) Inline interpreted text or phrase reference start-string without end-string. """], ["""\ Explicit roles for standard inline markup: :emphasis:`emphasis`, :strong:`strong`, :literal:`inline literal text`. """, """\ Explicit roles for standard inline markup: emphasis , strong , inline literal text . """], ["""\ Simple explicit roles: :ab:`abbreviation`, :ac:`acronym`, :sup:`superscript`, :sub:`subscript`, :title:`title reference`. """, """\ Simple explicit roles: abbreviation , acronym , superscript , subscript , title reference . """], ] totest['code'] = [ ["""\ Code role for inline code snippets: :code:`$\alpha = \int_0^\infty f(x) dx$`. """, """\ Code role for inline code snippets: $\x07lpha = \\int_0^\\infty f(x) dx$ . """], ] totest['code-parsing'] = [ ["""\ .. role:: tex(code) :language: latex Custom role based on code role: :tex:`$\alpha = f(x)$`. """, """\ Custom role based on code role: $ \x07lpha \n\ = f ( x ) $ . """], ["""\ Custom role based on code role: .. role:: python(code) :language: python :class: testclass Python code :python:`print("The end")`. """, """\ Custom role based on code role: Python code \n\ print ( "The end" ) . """], ] totest['references'] = [ ["""\ :PEP:`0` """, """\ PEP 0 """], ["""\ :PEP:`-1` """, """\ :PEP:`-1` PEP number must be a number from 0 to 9999; "-1" is invalid. """], ["""\ :RFC:`2822` """, """\ RFC 2822 """], ["""\ :RFC:`0` """, """\ :RFC:`0` RFC number must be a number greater than or equal to 1; "0" is invalid. """], ] totest['unknown_roles'] = [ ["""\ :role:`interpreted` """, """\ :role:`interpreted` No role entry for "role" in module "docutils.parsers.rst.languages.en". Trying "role" as canonical role name. Unknown interpreted text role "role". """], ["""\ `interpreted`:role: """, """\ `interpreted`:role: No role entry for "role" in module "docutils.parsers.rst.languages.en". Trying "role" as canonical role name. Unknown interpreted text role "role". """], ["""\ :role:`interpreted`:role: """, """\ :role:`interpreted`:role: Multiple roles in interpreted text (both prefix and suffix present; only one allowed). """], ["""\ :very.long-role_name:`interpreted` """, """\ :very.long-role_name:`interpreted` No role entry for "very.long-role_name" in module "docutils.parsers.rst.languages.en". Trying "very.long-role_name" as canonical role name. Unknown interpreted text role "very.long-role_name". """], ["""\ :restructuredtext-unimplemented-role:`interpreted` """, """\ :restructuredtext-unimplemented-role:`interpreted` No role entry for "restructuredtext-unimplemented-role" in module "docutils.parsers.rst.languages.en". Trying "restructuredtext-unimplemented-role" as canonical role name. Interpreted text role "restructuredtext-unimplemented-role" not implemented. """], ] if __name__ == '__main__': import unittest unittest.main(defaultTest='suite')