From 2bfb063194bfe1a79fbf32bb1ec1b658f748a713 Mon Sep 17 00:00:00 2001 From: grubert Date: Fri, 15 Mar 2024 12:50:33 +0000 Subject: [PATCH] compare output to expected files (pseudoxmal and man) git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@9565 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 --- .../manpage-writer/expected/termtest-manpage.man | 51 ++++++++++++++++++++++ .../manpage-writer/expected/termtest-pseudoxml.txt | 30 +++++++++++++ .../multiple_definition_list_terms.py | 19 +++++--- 3 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 sandbox/manpage-writer/expected/termtest-manpage.man create mode 100644 sandbox/manpage-writer/expected/termtest-pseudoxml.txt diff --git a/sandbox/manpage-writer/expected/termtest-manpage.man b/sandbox/manpage-writer/expected/termtest-manpage.man new file mode 100644 index 000000000..e32a58082 --- /dev/null +++ b/sandbox/manpage-writer/expected/termtest-manpage.man @@ -0,0 +1,51 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "" "" "" +.SH NAME + \- +.INDENT 0.0 +.TP +.B term 1 +definition 1 +.TP +.B term 2a +.TQ + +.B term 2b +definition 2 +.TP +.B term 3a +classifier 3aclassifier 3aa +.B term 3b +classifier 3b +definition 3 +.UNINDENT +.\" Generated by docutils manpage writer. +. diff --git a/sandbox/manpage-writer/expected/termtest-pseudoxml.txt b/sandbox/manpage-writer/expected/termtest-pseudoxml.txt new file mode 100644 index 000000000..53356bc10 --- /dev/null +++ b/sandbox/manpage-writer/expected/termtest-pseudoxml.txt @@ -0,0 +1,30 @@ + + + + + term 1 + + + definition 1 + + + term 2a + + term 2b + + + definition 2 + + + term 3a + + classifier 3a + + classifier 3aa + + term 3b + + classifier 3b + + + definition 3 diff --git a/sandbox/manpage-writer/multiple_definition_list_terms.py b/sandbox/manpage-writer/multiple_definition_list_terms.py index 55982d565..ed03f5325 100644 --- a/sandbox/manpage-writer/multiple_definition_list_terms.py +++ b/sandbox/manpage-writer/multiple_definition_list_terms.py @@ -34,6 +34,9 @@ # document tree programatically and exports it with the writers defined in # Docutils to temporary files. +import difflib +import os.path + from docutils.core import publish_doctree, publish_from_doctree from docutils.nodes import term, classifier @@ -110,7 +113,7 @@ extensions = {'html': 'html', 'html5': 'html', 'latex': 'tex', 'xetex': 'tex', - 'manpage': 'troff', + 'manpage': 'man', 'odt': 'odt', 'xml': 'xml', 'pseudoxml': 'txt', @@ -120,11 +123,17 @@ for format in extensions.keys(): output = publish_from_doctree(doctree, writer_name=format, settings_overrides=settings) - # print(output.decode()) - filename = f'/tmp/termtest-{format}.{extensions[format]}' - with open(filename, 'bw') as outfile: + filename = f'termtest-{format}.{extensions[format]}' + outf = f'output/{filename}' + with open(outf, 'bw') as outfile: outfile.write(output) - print(f'output written to /tmp/{filename}') + print(f'output written to {outf}') + expf = f'expected/{filename}' + if os.path.exists(expf): + d = difflib.unified_diff(open(expf).readlines(), + open(outf).readlines(), + fromfile=expf, tofile=outf) + print("".join(list(d))) # output = publish_from_doctree(doctree, writer_name='odf') -- 2.11.4.GIT