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.
428 lines
11 KiB
428 lines
11 KiB
7 years ago
|
#! /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')
|