Skip to content

Commit 38be50d

Browse files
add unittests for JsonLineFile
1 parent 92db232 commit 38be50d

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

tests/io/test_file.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,22 @@ def example_lines():
1414
return lines
1515

1616

17+
@pytest.fixture("module")
18+
def example_json():
19+
data = [
20+
{
21+
"text": "This is an example.",
22+
"start": 0,
23+
"end": 19
24+
},
25+
{"text": "This is another example.",
26+
"start": 0,
27+
"end": 24
28+
}
29+
]
30+
return data
31+
32+
1733
def test_read_lines(example_lines):
1834
filename = TEST_DATA_DIR + 'a.txt'
1935
lines = read_lines(filename)
@@ -65,3 +81,41 @@ def test_text_file(example_lines):
6581
assert text_file.read_lines() == expected_write_lines
6682

6783
text_file.write(true_text)
84+
85+
86+
def test_jsonl_file_read_write(example_json):
87+
dirname = tempfile.gettempdir() + '/'
88+
filename = dirname + 'a.json'
89+
if os.path.exists(filename):
90+
os.remove(filename)
91+
file = JsonLineFile(filename)
92+
file.write_lines(example_json)
93+
file.close()
94+
95+
assert os.path.exists(filename) is True
96+
97+
file2 = JsonLineFile(filename, is_remove=True)
98+
assert os.path.exists(filename) is False
99+
100+
with pytest.raises(FileNotFoundError):
101+
file2.read_lines()
102+
103+
file2.write_line(example_json)
104+
assert os.path.exists(filename) is True
105+
assert len(file2.read_lines()) == 1
106+
107+
file2.close()
108+
109+
110+
def test_jsonl_file_append(example_json):
111+
dirname = tempfile.gettempdir() + '/'
112+
filename = dirname + 'a.json'
113+
if os.path.exists(filename):
114+
os.remove(filename)
115+
116+
file = JsonLineFile(filename, is_remove=True)
117+
file.append_lines(example_json)
118+
file.append(example_json)
119+
file.append_line(example_json)
120+
121+
assert len(file.read_lines()) == 4

0 commit comments

Comments
 (0)