Merge pull request #57 feature-NEWDWH2021-643-json_parse into develop-6crm

This commit is contained in:
下田雅人 2022-08-16 15:05:09 +09:00
commit b14ebc8ca9
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,77 @@
import pytest
from src.parser.json_parser import JsonParser
class TestJsonParser():
def test_parse(self) -> dict:
"""
Cases:
- コメントアウトが記載されているJSONからコメントを取り除き辞書型を返すこと
Arranges:
- JSON文字列を準備する
Expects:
- json.loadsされたファイルの内容が期待値と一致する
"""
# Arranges
json_string = """{
"aaaa": "aaaa",
# これはコメントです
"#これはコメントではありません": "#これはコメントではありません",
"bbb": false,
"hogehoge": [
"ccc",
/これはコメントです
"/これはコメントではありません"
]
}"""
# Act
sut = JsonParser(json_string)
actual = sut.parse()
# Expects
expected_value = {
"aaaa": "aaaa",
"#これはコメントではありません": "#これはコメントではありません",
"bbb": False,
"hogehoge": [
"ccc",
"/これはコメントではありません"
]
}
assert actual == expected_value
def test_raise_parse(self) -> dict:
"""
Cases:
- コメントアウト記号ではない文字をコメントアウトとしたときに例外が発生すること
Arranges:
- JSON文字列を準備する
Expects:
- 例外が発生し期待値と一致する
"""
# Arranges
json_string = """{
"aaaa": "aaaa",
$ これはコメントです
"#これはコメントではありません": "#これはコメントではありません",
"bbb": false,
"hogehoge": [
"ccc",
/これはコメントです
"/これはコメントではありません"
]
}"""
# Act
with pytest.raises(Exception) as e:
sut = JsonParser(json_string)
sut.parse()
# Expects
assert "Expecting property name enclosed in double quotes:" in str(e.value)