Increase OAS description
Parce docstring of http handlers to increase OAS Remove the not expected definitions key in the OAS
This commit is contained in:
88
tests/test_oas/test_docstring_parser.py
Normal file
88
tests/test_oas/test_docstring_parser.py
Normal file
@@ -0,0 +1,88 @@
|
||||
from aiohttp_pydantic.oas.docstring_parser import (
|
||||
status_code,
|
||||
operation,
|
||||
_i_extract_block,
|
||||
LinesIterator,
|
||||
)
|
||||
from inspect import getdoc
|
||||
import pytest
|
||||
|
||||
|
||||
def web_handler():
|
||||
"""
|
||||
bla bla bla
|
||||
|
||||
|
||||
Status Codes:
|
||||
200: line 1
|
||||
|
||||
line 2:
|
||||
- line 3
|
||||
- line 4
|
||||
|
||||
line 5
|
||||
|
||||
300: line A 1
|
||||
|
||||
301: line B 1
|
||||
line B 2
|
||||
400: line C 1
|
||||
|
||||
line C 2
|
||||
|
||||
line C 3
|
||||
|
||||
bla bla
|
||||
"""
|
||||
|
||||
|
||||
def test_lines_iterator():
|
||||
lines_iterator = LinesIterator("AAAA\nBBBB")
|
||||
with pytest.raises(StopIteration):
|
||||
lines_iterator.rewind()
|
||||
|
||||
assert lines_iterator.next_line() == "AAAA"
|
||||
assert lines_iterator.rewind()
|
||||
assert lines_iterator.next_line() == "AAAA"
|
||||
assert lines_iterator.next_line() == "BBBB"
|
||||
with pytest.raises(StopIteration):
|
||||
lines_iterator.next_line()
|
||||
|
||||
|
||||
def test_status_code():
|
||||
|
||||
expected = {
|
||||
200: "line 1\n\nline 2:\n - line 3\n - line 4\n\nline 5",
|
||||
300: "line A 1",
|
||||
301: "line B 1\nline B 2",
|
||||
400: "line C 1\n\nline C 2\n\n line C 3",
|
||||
}
|
||||
|
||||
assert status_code(getdoc(web_handler)) == expected
|
||||
|
||||
|
||||
def test_operation():
|
||||
expected = "bla bla bla\n\n\nbla bla"
|
||||
assert operation(getdoc(web_handler)) == expected
|
||||
|
||||
|
||||
def test_i_extract_block():
|
||||
lines = LinesIterator(" aaaa\n\n bbbb\n\n cccc\n dddd")
|
||||
text = "\n".join(_i_extract_block(lines))
|
||||
assert text == """aaaa\n\n bbbb\n\ncccc"""
|
||||
|
||||
lines = LinesIterator("")
|
||||
text = "\n".join(_i_extract_block(lines))
|
||||
assert text == ""
|
||||
|
||||
lines = LinesIterator("aaaa\n bbbb") # the indented block is cut by a new block
|
||||
text = "\n".join(_i_extract_block(lines))
|
||||
assert text == ""
|
||||
|
||||
lines = LinesIterator(" \n ")
|
||||
text = "\n".join(_i_extract_block(lines))
|
||||
assert text == ""
|
||||
|
||||
lines = LinesIterator(" aaaa\n bbbb")
|
||||
text = "\n".join(_i_extract_block(lines))
|
||||
assert text == "aaaa\nbbbb"
|
||||
Reference in New Issue
Block a user