You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
427 lines
11 KiB
427 lines
11 KiB
#! /usr/bin/env python |
|
# -*- coding: utf-8 -*- |
|
|
|
# $Id: test_docinfo.py 8117 2017-06-18 23:38:18Z milde $ |
|
# Author: David Goodger <goodger@python.org> |
|
# Copyright: This module has been placed in the public domain. |
|
|
|
""" |
|
Tests for docutils.transforms.frontmatter.DocInfo. |
|
""" |
|
|
|
from __init__ import DocutilsTestSupport |
|
from docutils.transforms.frontmatter import DocInfo |
|
from docutils.parsers.rst import Parser |
|
|
|
|
|
def suite(): |
|
parser = Parser() |
|
settings = {'language_code': 'en'} |
|
s = DocutilsTestSupport.TransformTestSuite( |
|
parser, suite_settings=settings) |
|
s.generateTests(totest) |
|
settings['language_code'] = 'de' |
|
s.generateTests(totest_de) |
|
settings['language_code'] = 'ru' |
|
s.generateTests(totest_ru) |
|
return s |
|
|
|
totest = {} |
|
totest_de = {} |
|
totest_ru = {} |
|
|
|
totest['bibliographic_field_lists'] = ((DocInfo,), [ |
|
["""\ |
|
.. Bibliographic element extraction. |
|
|
|
:Abstract: |
|
There can only be one abstract. |
|
|
|
It is automatically moved to the end of the other bibliographic elements. |
|
|
|
:Author: Me |
|
:Version: 1 |
|
:Date: 2001-08-11 |
|
:Parameter i: integer |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<author> |
|
Me |
|
<version> |
|
1 |
|
<date> |
|
2001-08-11 |
|
<field classes="parameter-i"> |
|
<field_name> |
|
Parameter i |
|
<field_body> |
|
<paragraph> |
|
integer |
|
<topic classes="abstract"> |
|
<title> |
|
Abstract |
|
<paragraph> |
|
There can only be one abstract. |
|
<paragraph> |
|
It is automatically moved to the end of the other bibliographic elements. |
|
<comment xml:space="preserve"> |
|
Bibliographic element extraction. |
|
"""], |
|
["""\ |
|
.. Bibliographic element extraction. |
|
|
|
:Abstract: Abstract 1. |
|
:Author: Me |
|
:Address: 123 My Street |
|
Example, EX |
|
:Contact: me@my.org |
|
:Version: 1 |
|
:Abstract: Abstract 2 (should generate a warning). |
|
:Date: 2001-08-11 |
|
:Parameter i: integer |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<author> |
|
Me |
|
<address xml:space="preserve"> |
|
123 My Street |
|
Example, EX |
|
<contact> |
|
<reference refuri="mailto:me@my.org"> |
|
me@my.org |
|
<version> |
|
1 |
|
<field> |
|
<field_name> |
|
Abstract |
|
<field_body> |
|
<paragraph> |
|
Abstract 2 (should generate a warning). |
|
<system_message level="2" line="9" source="test data" type="WARNING"> |
|
<paragraph> |
|
There can only be one "Abstract" field. |
|
<date> |
|
2001-08-11 |
|
<field classes="parameter-i"> |
|
<field_name> |
|
Parameter i |
|
<field_body> |
|
<paragraph> |
|
integer |
|
<topic classes="abstract"> |
|
<title> |
|
Abstract |
|
<paragraph> |
|
Abstract 1. |
|
<comment xml:space="preserve"> |
|
Bibliographic element extraction. |
|
"""], |
|
["""\ |
|
:Author: - must be a paragraph |
|
:Status: a *simple* paragraph |
|
:Date: But only one |
|
|
|
paragraph. |
|
:Version: |
|
|
|
.. and not empty either |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<field> |
|
<field_name> |
|
Author |
|
<field_body> |
|
<bullet_list bullet="-"> |
|
<list_item> |
|
<paragraph> |
|
must be a paragraph |
|
<system_message level="2" line="1" source="test data" type="WARNING"> |
|
<paragraph> |
|
Cannot extract bibliographic field "Author" containing anything other than a single paragraph. |
|
<status> |
|
a \n\ |
|
<emphasis> |
|
simple |
|
paragraph |
|
<field> |
|
<field_name> |
|
Date |
|
<field_body> |
|
<paragraph> |
|
But only one |
|
<paragraph> |
|
paragraph. |
|
<system_message level="2" line="3" source="test data" type="WARNING"> |
|
<paragraph> |
|
Cannot extract compound bibliographic field "Date". |
|
<field> |
|
<field_name> |
|
Version |
|
<field_body> |
|
<system_message level="2" line="6" source="test data" type="WARNING"> |
|
<paragraph> |
|
Cannot extract empty bibliographic field "Version". |
|
<comment xml:space="preserve"> |
|
and not empty either |
|
"""], |
|
["""\ |
|
:Authors: Me, Myself, **I** |
|
:Authors: PacMan; Ms. PacMan; PacMan, Jr. |
|
:Authors: |
|
Here |
|
|
|
There |
|
|
|
*Everywhere* |
|
:Authors: - First |
|
- Second |
|
- Third |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<authors> |
|
<author> |
|
Me |
|
<author> |
|
Myself |
|
<author> |
|
I |
|
<authors> |
|
<author> |
|
PacMan |
|
<author> |
|
Ms. PacMan |
|
<author> |
|
PacMan, Jr. |
|
<authors> |
|
<author> |
|
Here |
|
<author> |
|
There |
|
<author> |
|
<emphasis> |
|
Everywhere |
|
<authors> |
|
<author> |
|
First |
|
<author> |
|
Second |
|
<author> |
|
Third |
|
"""], |
|
["""\ |
|
:Authors: Only One |
|
:Authors: One, Only; |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<authors> |
|
<author> |
|
Only One |
|
<authors> |
|
<author> |
|
One, Only |
|
"""], |
|
["""\ |
|
:Authors: |
|
|
|
:Authors: 1. One |
|
2. Two |
|
|
|
:Authors: |
|
- |
|
- |
|
|
|
:Authors: |
|
- One |
|
|
|
Two |
|
|
|
:Authors: |
|
- One |
|
|
|
Two |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<field> |
|
<field_name> |
|
Authors |
|
<field_body> |
|
<system_message level="2" line="1" source="test data" type="WARNING"> |
|
<paragraph> |
|
Cannot extract empty bibliographic field "Authors". |
|
<field> |
|
<field_name> |
|
Authors |
|
<field_body> |
|
<enumerated_list enumtype="arabic" prefix="" suffix="."> |
|
<list_item> |
|
<paragraph> |
|
One |
|
<list_item> |
|
<paragraph> |
|
Two |
|
<system_message level="2" line="3" source="test data" type="WARNING"> |
|
<paragraph> |
|
Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. |
|
<field> |
|
<field_name> |
|
Authors |
|
<field_body> |
|
<bullet_list bullet="-"> |
|
<list_item> |
|
<list_item> |
|
<system_message level="2" line="6" source="test data" type="WARNING"> |
|
<paragraph> |
|
Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. |
|
<field> |
|
<field_name> |
|
Authors |
|
<field_body> |
|
<bullet_list bullet="-"> |
|
<list_item> |
|
<paragraph> |
|
One |
|
<paragraph> |
|
Two |
|
<system_message level="2" line="10" source="test data" type="WARNING"> |
|
<paragraph> |
|
Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. |
|
<field> |
|
<field_name> |
|
Authors |
|
<field_body> |
|
<bullet_list bullet="-"> |
|
<list_item> |
|
<paragraph> |
|
One |
|
<paragraph> |
|
Two |
|
<system_message level="2" line="15" source="test data" type="WARNING"> |
|
<paragraph> |
|
Bibliographic field "Authors" incompatible with extraction: it must contain either a single paragraph (with authors separated by one of ";,"), multiple paragraphs (one per author), or a bullet list with one paragraph (one author) per item. |
|
"""], |
|
["""\ |
|
.. RCS keyword extraction. |
|
|
|
:Status: (some text) $""" + """RCSfile: test_docinfo.py,v $ (more text) |
|
:Date: (some text) $""" + """Date: 2002/10/08 01:34:23 $ (more text) |
|
:Date: (some text) $""" + """Date: 2005-03-26T16:21:28.693201Z $ (more text) |
|
:Version: (some text) $""" + """Revision: 1.1 $ (more text) |
|
""", |
|
"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<status> |
|
(some text) test_docinfo.py (more text) |
|
<date> |
|
(some text) 2002-10-08 (more text) |
|
<date> |
|
(some text) 2005-03-26 (more text) |
|
<version> |
|
(some text) 1.1 (more text) |
|
<comment xml:space="preserve"> |
|
RCS keyword extraction. |
|
"""], |
|
]) |
|
|
|
totest_de['bibliographic_field_lists'] = ((DocInfo,), [ |
|
[u"""\ |
|
.. Bibliographic element extraction for a German document. |
|
|
|
:Zusammenfassung: Abstract 1. |
|
:Autor: Me |
|
:Adresse: 123 My Street |
|
Example, EX |
|
:Kontakt: me@my.org |
|
:Version: 1 |
|
:Datum: 2001-08-11 |
|
:Parameter i: integer |
|
""", |
|
u"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<author> |
|
Me |
|
<address xml:space="preserve"> |
|
123 My Street |
|
Example, EX |
|
<contact> |
|
<reference refuri="mailto:me@my.org"> |
|
me@my.org |
|
<version> |
|
1 |
|
<date> |
|
2001-08-11 |
|
<field classes="parameter-i"> |
|
<field_name> |
|
Parameter i |
|
<field_body> |
|
<paragraph> |
|
integer |
|
<topic classes="abstract"> |
|
<title> |
|
Zusammenfassung |
|
<paragraph> |
|
Abstract 1. |
|
<comment xml:space="preserve"> |
|
Bibliographic element extraction for a German document. |
|
"""],]) |
|
|
|
totest_ru['bibliographic_field_lists'] = ((DocInfo,), [ |
|
[u"""\ |
|
.. Bibliographic element extraction for a Russian document. |
|
|
|
:аннотация: Abstract 1. |
|
:автор: Me |
|
:адрес: 123 My Street |
|
Example, EX |
|
:контакт: me@my.org |
|
:версия: 1 |
|
:дата: 2001-08-11 |
|
:Parameter i: integer |
|
""", |
|
u"""\ |
|
<document source="test data"> |
|
<docinfo> |
|
<author> |
|
Me |
|
<address xml:space="preserve"> |
|
123 My Street |
|
Example, EX |
|
<contact> |
|
<reference refuri="mailto:me@my.org"> |
|
me@my.org |
|
<version> |
|
1 |
|
<date> |
|
2001-08-11 |
|
<field classes="parameter-i"> |
|
<field_name> |
|
Parameter i |
|
<field_body> |
|
<paragraph> |
|
integer |
|
<topic classes="abstract"> |
|
<title> |
|
Аннотация |
|
<paragraph> |
|
Abstract 1. |
|
<comment xml:space="preserve"> |
|
Bibliographic element extraction for a Russian document. |
|
"""],]) |
|
|
|
|
|
if __name__ == '__main__': |
|
import unittest |
|
unittest.main(defaultTest='suite')
|
|
|