forked from Archives/langchain
94cf391ef1
Co-authored-by: Dev 2049 <dev.dev2049@gmail.com>
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"}
|