mirror of
https://github.com/hwchase17/langchain
synced 2024-10-29 17:07:25 +00:00
82 lines
903 B
Python
82 lines
903 B
Python
|
import pytest
|
||
|
|
||
|
from langchain.output_parsers.json import parse_json_markdown
|
||
|
|
||
|
GOOD_JSON = """```json
|
||
|
{
|
||
|
"foo": "bar"
|
||
|
}
|
||
|
```"""
|
||
|
|
||
|
JSON_WITH_NEW_LINES = """
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"foo": "bar"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
"""
|
||
|
|
||
|
JSON_WITH_NEW_LINES_INSIDE = """```json
|
||
|
{
|
||
|
|
||
|
"foo": "bar"
|
||
|
|
||
|
}
|
||
|
```"""
|
||
|
|
||
|
JSON_WITH_NEW_LINES_EVERYWHERE = """
|
||
|
|
||
|
```json
|
||
|
|
||
|
{
|
||
|
|
||
|
"foo": "bar"
|
||
|
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
"""
|
||
|
|
||
|
TICKS_WITH_NEW_LINES_EVERYWHERE = """
|
||
|
|
||
|
```
|
||
|
|
||
|
{
|
||
|
|
||
|
"foo": "bar"
|
||
|
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
"""
|
||
|
|
||
|
NO_TICKS = """{
|
||
|
"foo": "bar"
|
||
|
}"""
|
||
|
|
||
|
NO_TICKS_WHITE_SPACE = """
|
||
|
{
|
||
|
"foo": "bar"
|
||
|
}
|
||
|
"""
|
||
|
|
||
|
TEST_CASES = [
|
||
|
GOOD_JSON,
|
||
|
JSON_WITH_NEW_LINES,
|
||
|
JSON_WITH_NEW_LINES_INSIDE,
|
||
|
JSON_WITH_NEW_LINES_EVERYWHERE,
|
||
|
TICKS_WITH_NEW_LINES_EVERYWHERE,
|
||
|
NO_TICKS,
|
||
|
NO_TICKS_WHITE_SPACE,
|
||
|
]
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize("json_string", TEST_CASES)
|
||
|
def test_parse_json(json_string: str) -> None:
|
||
|
parsed = parse_json_markdown(json_string)
|
||
|
assert parsed == {"foo": "bar"}
|