Merge pull request #57 feature-NEWDWH2021-643-json_parse into develop-6crm
This commit is contained in:
commit
b14ebc8ca9
77
ecs/crm-datafetch/tests/parser/test_json_parser.py
Normal file
77
ecs/crm-datafetch/tests/parser/test_json_parser.py
Normal 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)
|
||||
Loading…
x
Reference in New Issue
Block a user