66import pytest
77
88from middleware .sql_to_arc .builder import build_single_arc_task
9- from middleware .sql_to_arc .models import ArcBuildData
9+ from middleware .sql_to_arc .models import (
10+ ArcBuildData ,
11+ AssayRow ,
12+ ContactRow ,
13+ InvestigationRow ,
14+ PublicationRow ,
15+ StudyRow ,
16+ )
1017
1118
1219@pytest .fixture
@@ -97,7 +104,12 @@ def sample_publications() -> list[dict[str, Any]]:
97104def test_build_simple_arc (sample_investigation : dict [str , Any ]) -> None :
98105 """Test building a basic ARC structure from investigation data."""
99106 arc_data = ArcBuildData (
100- investigation_row = sample_investigation , studies = [], assays = [], contacts = [], publications = [], annotations = []
107+ investigation_row = InvestigationRow .model_validate (sample_investigation ),
108+ studies = [],
109+ assays = [],
110+ contacts = [],
111+ publications = [],
112+ annotations = [],
101113 )
102114 arc_json = build_single_arc_task (arc_data )
103115 assert isinstance (arc_json , str )
@@ -115,9 +127,9 @@ def test_build_arc_with_study_and_assay(
115127) -> None :
116128 """Test building an ARC with nested study and assay structures."""
117129 arc_data = ArcBuildData (
118- investigation_row = sample_investigation ,
119- studies = sample_studies ,
120- assays = sample_assays ,
130+ investigation_row = InvestigationRow . model_validate ( sample_investigation ) ,
131+ studies = [ StudyRow . model_validate ( s ) for s in sample_studies ] ,
132+ assays = [ AssayRow . model_validate ( a ) for a in sample_assays ] ,
121133 contacts = [],
122134 publications = [],
123135 annotations = [],
@@ -142,11 +154,11 @@ def test_build_arc_with_contacts_and_pubs(
142154) -> None :
143155 """Test building an ARC with contacts and publications at both investigation and study levels."""
144156 arc_data = ArcBuildData (
145- investigation_row = sample_investigation ,
146- studies = sample_studies ,
157+ investigation_row = InvestigationRow . model_validate ( sample_investigation ) ,
158+ studies = [ StudyRow . model_validate ( s ) for s in sample_studies ] ,
147159 assays = [],
148- contacts = sample_contacts ,
149- publications = sample_publications ,
160+ contacts = [ ContactRow . model_validate ( c ) for c in sample_contacts ] ,
161+ publications = [ PublicationRow . model_validate ( p ) for p in sample_publications ] ,
150162 annotations = [],
151163 )
152164 arc_json = build_single_arc_task (arc_data )
@@ -167,8 +179,8 @@ def test_build_ignores_irrelevant_data(sample_investigation: dict[str, Any]) ->
167179 other_study = {"identifier" : "styX" , "investigation_ref" : "inv2" }
168180
169181 arc_data = ArcBuildData (
170- investigation_row = sample_investigation ,
171- studies = [other_study ],
182+ investigation_row = InvestigationRow . model_validate ( sample_investigation ) ,
183+ studies = [StudyRow . model_validate ( other_study ) ],
172184 assays = [],
173185 contacts = [],
174186 publications = [],
0 commit comments