Skip to content

Commit 1b3c488

Browse files
committed
add test
1 parent 2da4919 commit 1b3c488

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import pytest
2+
import pandas as pd
3+
import tempfile
4+
from pathlib import Path
5+
from ..redcap2reproschema import process_csv
6+
7+
def test_process_csv():
8+
csv_data = '''Form Name,Variable / Field Name,Field Type,Field Annotation,Choices Calculations OR Slider Labels
9+
form1,field1,text,,
10+
form1,field2,calc,,2+2
11+
form1,field3,text,@CALCTEXT(3*3),
12+
form2,field4,text,,
13+
,field5,text,,'''
14+
15+
with tempfile.TemporaryDirectory() as tmpdir:
16+
csv_path = Path(tmpdir) / "test.csv"
17+
csv_path.write_text(csv_data)
18+
19+
datas, order, compute = process_csv(csv_path, tmpdir, "test_protocol")
20+
21+
assert set(datas.keys()) == {"form1", "form2"}
22+
assert len(datas["form1"]) == 3
23+
assert len(datas["form2"]) == 1
24+
25+
assert order["form1"] == ["items/field1"] # field3 goes to compute
26+
assert order["form2"] == ["items/field4"]
27+
28+
assert len(compute["form1"]) == 2
29+
assert compute["form1"][0]["variableName"] == "field2"
30+
assert compute["form1"][1]["variableName"] == "field3"
31+
32+
def test_process_csv_missing_columns():
33+
csv_data = "Column1,Column2\na,b"
34+
with tempfile.TemporaryDirectory() as tmpdir:
35+
csv_path = Path(tmpdir) / "test.csv"
36+
csv_path.write_text(csv_data)
37+
38+
with pytest.raises(ValueError):
39+
process_csv(csv_path, tmpdir, "test_protocol")

0 commit comments

Comments
 (0)