#! /usr/bin/env python # $Id: test_code.py 7267 2011-12-20 14:14:21Z milde $ # Author: Guenter Milde # Copyright: This module has been placed in the public domain. """ Test the 'code' directive in parsers/rst/directives/body.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['code'] = [ ["""\ .. code:: This is a code block. """, """\ This is a code block. """], ["""\ .. code:: :class: testclass :name: without argument This is a code block with generic options. """, """\ This is a code block with generic options. """], ["""\ .. code:: text :class: testclass This is a code block with text. """, """\ This is a code block with text. """], ["""\ .. code:: :number-lines: This is a code block with text. """, """\ 1 \n\ This is a code block with text. """], ["""\ .. code:: :number-lines: 30 This is a code block with text. """, """\ 30 \n\ This is a code block with text. """], ["""\ .. code:: """, """\ Content block expected for the "code" directive; none found. .. code:: """], ] totest['code-parsing'] = [ ["""\ .. code:: python :class: testclass print 'hello world' # to stdout """, """\ \n\ print \n\ 'hello world' \n\ # to stdout """], ["""\ .. code:: python :class: testclass :name: my_function :number-lines: 7 def my_function(): '''Test the lexer. ''' # and now for something completely different print 8/2 """, """\ 7 \n\ def \n\ my_function (): \n\ 8 \n\ \n\ \'\'\'Test the lexer. 9 \n\ \'\'\' \n\ 10 \n\ \n\ 11 \n\ \n\ # and now for something completely different \n\ 12 \n\ \n\ print \n\ 8 / 2 """], ["""\ .. code:: latex :class: testclass hello \emph{world} % emphasize """, """\ hello \n\ \\emph { world } \n\ % emphasize"""], ["""\ .. code:: rst :number-lines: This is a code block with text. """, """\ 1 \n\ This is a code block with text. """], ["""\ .. code:: s-lang % abc.sl autoload("abc_mode", "abc"); """, """\ Cannot analyze code. No Pygments lexer found for "s-lang". .. code:: s-lang \n\ % abc.sl autoload("abc_mode", "abc"); """], ["""\ Place the language name in a class argument to avoid the no-lexer warning: .. code:: :class: s-lang % abc.sl autoload("abc_mode", "abc"); """, """\ Place the language name in a class argument to avoid the no-lexer warning: % abc.sl autoload("abc_mode", "abc"); """], ] if __name__ == '__main__': import unittest unittest.main(defaultTest='suite')