|
8 | 8 | :license: BSD, see LICENSE for details. |
9 | 9 | """ |
10 | 10 |
|
11 | | -from sphinx.util.docstrings import extract_metadata, prepare_commentdoc, prepare_docstring |
| 11 | +from sphinx.util.docstrings import prepare_commentdoc, prepare_docstring, separate_metadata |
12 | 12 |
|
13 | 13 |
|
14 | | -def test_extract_metadata(): |
15 | | - metadata = extract_metadata(":meta foo: bar\n" |
16 | | - ":meta baz:\n") |
| 14 | +def test_separate_metadata(): |
| 15 | + # metadata only |
| 16 | + text = (":meta foo: bar\n" |
| 17 | + ":meta baz:\n") |
| 18 | + docstring, metadata = separate_metadata(text) |
| 19 | + assert docstring == '' |
17 | 20 | assert metadata == {'foo': 'bar', 'baz': ''} |
18 | 21 |
|
| 22 | + # non metadata field list item |
| 23 | + text = (":meta foo: bar\n" |
| 24 | + ":param baz:\n") |
| 25 | + docstring, metadata = separate_metadata(text) |
| 26 | + assert docstring == ':param baz:\n' |
| 27 | + assert metadata == {'foo': 'bar'} |
| 28 | + |
19 | 29 | # field_list like text following just after paragaph is not a field_list |
20 | | - metadata = extract_metadata("blah blah blah\n" |
21 | | - ":meta foo: bar\n" |
22 | | - ":meta baz:\n") |
| 30 | + text = ("blah blah blah\n" |
| 31 | + ":meta foo: bar\n" |
| 32 | + ":meta baz:\n") |
| 33 | + docstring, metadata = separate_metadata(text) |
| 34 | + assert docstring == text |
23 | 35 | assert metadata == {} |
24 | 36 |
|
25 | 37 | # field_list like text following after blank line is a field_list |
26 | | - metadata = extract_metadata("blah blah blah\n" |
27 | | - "\n" |
28 | | - ":meta foo: bar\n" |
29 | | - ":meta baz:\n") |
| 38 | + text = ("blah blah blah\n" |
| 39 | + "\n" |
| 40 | + ":meta foo: bar\n" |
| 41 | + ":meta baz:\n") |
| 42 | + docstring, metadata = separate_metadata(text) |
| 43 | + assert docstring == "blah blah blah\n\n" |
30 | 44 | assert metadata == {'foo': 'bar', 'baz': ''} |
31 | 45 |
|
32 | 46 | # non field_list item breaks field_list |
33 | | - metadata = extract_metadata(":meta foo: bar\n" |
34 | | - "blah blah blah\n" |
35 | | - ":meta baz:\n") |
| 47 | + text = (":meta foo: bar\n" |
| 48 | + "blah blah blah\n" |
| 49 | + ":meta baz:\n") |
| 50 | + docstring, metadata = separate_metadata(text) |
| 51 | + assert docstring == ("blah blah blah\n" |
| 52 | + ":meta baz:\n") |
36 | 53 | assert metadata == {'foo': 'bar'} |
37 | 54 |
|
38 | 55 |
|
|
0 commit comments