Skip to content

Commit

Permalink
fix: Avoid running v2v3 conversion and preptool on prepped documents
Browse files Browse the repository at this point in the history
Fixes #1013
  • Loading branch information
kesara committed Aug 2, 2023
1 parent 0114c43 commit 6b2eef6
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 17 deletions.
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ datetime_regex = [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][T_ ][0-9][0-9]:[0-9]
version_regex = [Vv]ersion [23N]\(\.[0-9N]\+\)\+\(\.dev\)\?
date_regex = \([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\|\([0-9]\([0-9]\)\? \)\?[ADFJMOS][a-u]\* [12][0-9][0-9][0-9]\)
legacydate_regex = [ADFJMOS][a-u]* [123]*[0-9], [12][0-9][0-9][0-9]$$
expire_regex = This Internet-Draft will expire on.*$
generator_regex = name="generator"
libversion_regex = \(pyflakes\|PyYAML\|requests\|setuptools\|six\|Weasyprint\) [0-9]\+\(\.[0-9]\+\)*

Expand Down Expand Up @@ -130,10 +131,10 @@ tests/out/%.prepped.xml: tests/input/%.xml tests/out/%.v3.html tests/out/%.text
@PS4=" " /bin/bash -cx "xml2rfc --skip-config --allow-local-file-access --cache \"$${IETF_TEST_CACHE_PATH}\" --no-network --out $@ --prep $<"
@echo " Checking generation of .html from prepped .xml"
@PS4=" " /bin/bash -cx "xml2rfc --skip-config --allow-local-file-access --cache \"$${IETF_TEST_CACHE_PATH}\" --no-network --out $(basename $@).html --html --external-css --external-js --legacy-date-format --no-inline-version $@" 2> /dev/null || { err=$$?; echo "Error output when generating .html from prepped .xml"; exit $$err; }
@diff -u -I '$(datetime_regex)' -I '$(version_regex)' -I '$(date_regex)' -I '$(generator_regex)' -I 'rel="alternate"' tests/out/$(notdir $(basename $(basename $@))).v3.html $(basename $@).html || { echo "Diff failed for $(basename $@).html output (2)"; exit 1; }
@diff -u -I '$(datetime_regex)' -I '$(version_regex)' -I '$(date_regex)' -I '$(legacydate_regex)' -I '$(expire_regex)' -I '$(generator_regex)' -I 'rel="alternate"' tests/out/$(notdir $(basename $(basename $@))).v3.html $(basename $@).html || { echo "Diff failed for $(basename $@).html output (2)"; exit 1; }
@echo " Checking generation of .text from prepped .xml"
@PS4=" " /bin/bash -cx "xml2rfc --skip-config --allow-local-file-access --cache \"$${IETF_TEST_CACHE_PATH}\" --no-network --out $(basename $@).text --text --no-pagination --external-css --external-js --legacy-date-format $@" 2> /dev/null || { err=$$?; echo "Error output when generating .text from prepped .xml"; exit $$err; }
@diff -u -I '$(datetime_regex)' -I '$(version_regex)' -I '$(date_regex)' -I '$(generator_regex)' -I 'rel="alternate"' tests/out/$(notdir $(basename $(basename $@))).text $(basename $@).text || { echo "Diff failed for $(basename $@).text output (3)"; exit 1; }
@diff -u -I '$(datetime_regex)' -I '$(version_regex)' -I '$(date_regex)' -I '$(legacydate_regex)' -I '$(expire_regex)' -I '$(generator_regex)' -I 'rel="alternate"' tests/out/$(notdir $(basename $(basename $@))).text $(basename $@).text || { echo "Diff failed for $(basename $@).text output (3)"; exit 1; }

tests/out/docfile.xml:
@PS4=" " /bin/bash -cx "xml2rfc --skip-config --allow-local-file-access --cache \"$${IETF_TEST_CACHE_PATH}\" --no-network --doc --out $@"
Expand Down
1 change: 0 additions & 1 deletion tests/input/elements.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1270,7 +1270,6 @@ for opt, value in opts:
</section>
<section>
<name>Wide artwork</name>
<?v3xml2rfc silence="Artwork too wide, reducing indentation" ?>
<artwork>
0 1 2 3 4 5 6 7
123456789012345678901234567890123456789012345678901234567890123456789012
Expand Down
2 changes: 0 additions & 2 deletions tests/input/rfc7911.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
<?rfc subcompact="no"?>

<rfc number="7911" category="std" consensus="yes" submissionType="IETF" ipr="trust200902" docName="draft-ietf-idr-add-paths">
<?v3xml2rfc silence="The 'docName' attribute of the .rfc/. element should have a revision number" ?>
<?v3xml2rfc silence="The document date .*? is more than 3 days away from today's date" ?>
<front>
<title abbrev="ADD-PATH">Advertisement of Multiple Paths in BGP</title>

Expand Down
27 changes: 15 additions & 12 deletions xml2rfc/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -720,10 +720,11 @@ def main():
if not filename:
filename = basename + '.txt'
options.output_filename = filename
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if not xmlrfc.tree.getroot().get('prepTime'):
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if xmlrfc.tree:
writer = xml2rfc.TextWriter(xmlrfc, options=options, date=options.date)
writer.write(filename)
Expand All @@ -735,10 +736,11 @@ def main():
if not filename:
filename = basename + '.html'
options.output_filename = filename
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if not xmlrfc.tree.getroot().get('prepTime'):
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if xmlrfc.tree:
writer = xml2rfc.HtmlWriter(xmlrfc, options=options, date=options.date)
writer.write(filename)
Expand All @@ -750,10 +752,11 @@ def main():
if not filename:
filename = basename + '.pdf'
options.output_filename = filename
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if not xmlrfc.tree.getroot().get('prepTime'):
v2v3 = xml2rfc.V2v3XmlWriter(xmlrfc, options=options, date=options.date)
xmlrfc.tree = v2v3.convert2to3()
prep = xml2rfc.PrepToolWriter(xmlrfc, options=options, date=options.date, liberal=True, keep_pis=[xml2rfc.V3_PI_TARGET])
xmlrfc.tree = prep.prep()
if xmlrfc.tree:
writer = xml2rfc.PdfWriter(xmlrfc, options=options, date=options.date)
writer.write(filename)
Expand Down

0 comments on commit 6b2eef6

Please sign in to comment.