11import pytest
22from flask import url_for
3- from neurostore .models .data import Pipeline , PipelineConfig , PipelineRun , PipelineRunResult , PipelineRunResultVote , BaseStudy
4- from neurostore .schemas .pipeline import PipelineSchema , PipelineConfigSchema , PipelineRunSchema , PipelineRunResultSchema , PipelineRunResultVoteSchema
3+ from neurostore .models .data import (
4+ Pipeline ,
5+ PipelineConfig ,
6+ PipelineRun ,
7+ PipelineRunResult ,
8+ PipelineRunResultVote ,
9+ BaseStudy ,
10+ )
11+ from neurostore .schemas .pipeline import (
12+ PipelineSchema ,
13+ PipelineConfigSchema ,
14+ PipelineRunSchema ,
15+ PipelineRunResultSchema ,
16+ PipelineRunResultVoteSchema ,
17+ )
518from neurostore .database import db
619
20+
721@pytest .fixture
822def pipeline (session , pipeline_payload ):
923 pipeline = Pipeline (** pipeline_payload )
1024 session .add (pipeline )
1125 session .commit ()
1226 return pipeline
1327
28+
1429@pytest .fixture
1530def pipeline_config (session , pipeline_config_payload ):
1631 pipeline_config = PipelineConfig (** pipeline_config_payload )
1732 session .add (pipeline_config )
1833 session .commit ()
1934 return pipeline_config
2035
36+
2137@pytest .fixture
2238def pipeline_run (session , pipeline_run_payload ):
2339 pipeline_run = PipelineRun (** pipeline_run_payload )
2440 session .add (pipeline_run )
2541 session .commit ()
2642 return pipeline_run
2743
44+
2845@pytest .fixture
2946def pipeline_run_result (session , pipeline_run_result_payload ):
3047 pipeline_run_result = PipelineRunResult (** pipeline_run_result_payload )
@@ -42,24 +59,23 @@ def pipeline_payload():
4259 "study_dependent" : True ,
4360 "ace_compatible" : False ,
4461 "pubget_compatible" : True ,
45- "derived_from" : "Base Pipeline"
62+ "derived_from" : "Base Pipeline" ,
4663 }
4764
65+
4866@pytest .fixture
4967def pipeline_config_payload (pipeline ):
5068 return {
5169 "pipeline_id" : pipeline .id ,
5270 "config" : {"param1" : "value1" , "param2" : "value2" },
53- "config_hash" : "abc123"
71+ "config_hash" : "abc123" ,
5472 }
5573
74+
5675@pytest .fixture
5776def pipeline_run_payload (pipeline , pipeline_config ):
58- return {
59- "pipeline_id" : pipeline .id ,
60- "config_id" : pipeline_config .id ,
61- "run_index" : 1
62- }
77+ return {"pipeline_id" : pipeline .id , "config_id" : pipeline_config .id , "run_index" : 1 }
78+
6379
6480@pytest .fixture
6581def pipeline_run_result_payload (pipeline_run ):
@@ -71,135 +87,157 @@ def pipeline_run_result_payload(pipeline_run):
7187 "base_study_id" : base_study .id ,
7288 "date_executed" : "2023-01-01T00:00:00Z" ,
7389 "data" : {"result" : "success" },
74- "file_inputs" : {"input1" : "file1" }
90+ "file_inputs" : {"input1" : "file1" },
7591 }
7692
7793
7894def test_create_pipeline (auth_client , pipeline_payload ):
79- response = auth_client .post (' /api/pipelines/' , data = pipeline_payload )
95+ response = auth_client .post (" /api/pipelines/" , data = pipeline_payload )
8096 assert response .status_code == 201
8197 data = response .json ()
8298 assert data ["name" ] == pipeline_payload ["name" ]
8399
100+
84101def test_get_pipeline (auth_client , pipeline_payload , session ):
85102 pipeline = Pipeline (** pipeline_payload )
86103 db .session .add (pipeline )
87104 db .session .commit ()
88- response = auth_client .get (f' /api/pipelines/{ pipeline .id } ' )
105+ response = auth_client .get (f" /api/pipelines/{ pipeline .id } " )
89106 assert response .status_code == 200
90107 data = response .json ()
91108 assert data ["name" ] == pipeline_payload ["name" ]
92109
110+
93111def test_update_pipeline (auth_client , pipeline_payload , session ):
94112 pipeline = Pipeline (** pipeline_payload )
95113 db .session .add (pipeline )
96114 db .session .commit ()
97115 updated_payload = {"name" : "Updated Pipeline" }
98- response = auth_client .put (f' /api/pipelines/{ pipeline .id } ' , data = updated_payload )
116+ response = auth_client .put (f" /api/pipelines/{ pipeline .id } " , data = updated_payload )
99117 assert response .status_code == 200
100118 data = response .json ()
101119 assert data ["name" ] == "Updated Pipeline"
102120
121+
103122def test_delete_pipeline (auth_client , pipeline_payload ):
104123 pipeline = Pipeline (** pipeline_payload )
105124 db .session .add (pipeline )
106125 db .session .commit ()
107- response = auth_client .delete (f' /api/pipelines/{ pipeline .id } ' )
126+ response = auth_client .delete (f" /api/pipelines/{ pipeline .id } " )
108127 assert response .status_code == 204
109128
110129
111130def test_create_pipeline_config (auth_client , pipeline_config_payload , session ):
112- response = auth_client .post (' /api/pipeline-configs/' , data = pipeline_config_payload )
131+ response = auth_client .post (" /api/pipeline-configs/" , data = pipeline_config_payload )
113132 assert response .status_code == 201
114133 data = response .json ()
115134 assert data ["config" ] == pipeline_config_payload ["config" ]
116135
136+
117137def test_get_pipeline_config (auth_client , pipeline_config_payload , session ):
118138 pipeline_config = PipelineConfig (** pipeline_config_payload )
119139 db .session .add (pipeline_config )
120140 db .session .commit ()
121- response = auth_client .get (f' /api/pipeline-configs/{ pipeline_config .id } ' )
141+ response = auth_client .get (f" /api/pipeline-configs/{ pipeline_config .id } " )
122142 assert response .status_code == 200
123143 data = response .json ()
124144 assert data ["config" ] == pipeline_config_payload ["config" ]
125145
146+
126147def test_update_pipeline_config (auth_client , pipeline_config_payload , session ):
127148 pipeline_config = PipelineConfig (** pipeline_config_payload )
128149 db .session .add (pipeline_config )
129150 db .session .commit ()
130151 updated_payload = {"config" : {"param1" : "new_value" }}
131- response = auth_client .put (f'/api/pipeline-configs/{ pipeline_config .id } ' , data = updated_payload )
152+ response = auth_client .put (
153+ f"/api/pipeline-configs/{ pipeline_config .id } " , data = updated_payload
154+ )
132155 assert response .status_code == 200
133156 data = response .json ()
134157 assert data ["config" ] == {"param1" : "new_value" }
135158
159+
136160def test_delete_pipeline_config (auth_client , pipeline_config_payload , session ):
137161 pipeline_config = PipelineConfig (** pipeline_config_payload )
138162 db .session .add (pipeline_config )
139163 db .session .commit ()
140- response = auth_client .delete (f' /api/pipeline-configs/{ pipeline_config .id } ' )
164+ response = auth_client .delete (f" /api/pipeline-configs/{ pipeline_config .id } " )
141165 assert response .status_code == 204
142166
167+
143168def test_create_pipeline_run (auth_client , pipeline_run_payload , session ):
144- response = auth_client .post (' /api/pipeline-runs/' , data = pipeline_run_payload )
169+ response = auth_client .post (" /api/pipeline-runs/" , data = pipeline_run_payload )
145170 assert response .status_code == 201
146171 data = response .json ()
147172 assert data ["pipeline_id" ] == pipeline_run_payload ["pipeline_id" ]
148173
174+
149175def test_get_pipeline_run (auth_client , pipeline_run_payload , session ):
150176 pipeline_run = PipelineRun (** pipeline_run_payload )
151177 db .session .add (pipeline_run )
152178 db .session .commit ()
153- response = auth_client .get (f' /api/pipeline-runs/{ pipeline_run .id } ' )
179+ response = auth_client .get (f" /api/pipeline-runs/{ pipeline_run .id } " )
154180 assert response .status_code == 200
155181 data = response .json ()
156182 assert data ["pipeline_id" ] == pipeline_run_payload ["pipeline_id" ]
157183
184+
158185def test_update_pipeline_run (auth_client , pipeline_run_payload , session ):
159186 pipeline_run = PipelineRun (** pipeline_run_payload )
160187 db .session .add (pipeline_run )
161188 db .session .commit ()
162189 updated_payload = {"run_index" : 2 }
163- response = auth_client .put (f'/api/pipeline-runs/{ pipeline_run .id } ' , data = updated_payload )
190+ response = auth_client .put (
191+ f"/api/pipeline-runs/{ pipeline_run .id } " , data = updated_payload
192+ )
164193 assert response .status_code == 200
165194 data = response .json ()
166195 assert data ["run_index" ] == 2
167196
197+
168198def test_delete_pipeline_run (auth_client , pipeline_run_payload , session ):
169199 pipeline_run = PipelineRun (** pipeline_run_payload )
170200 db .session .add (pipeline_run )
171201 db .session .commit ()
172- response = auth_client .delete (f' /api/pipeline-runs/{ pipeline_run .id } ' )
202+ response = auth_client .delete (f" /api/pipeline-runs/{ pipeline_run .id } " )
173203 assert response .status_code == 204
174204
205+
175206def test_create_pipeline_run_result (auth_client , pipeline_run_result_payload , session ):
176- response = auth_client .post ('/api/pipeline-run-results/' , data = pipeline_run_result_payload )
207+ response = auth_client .post (
208+ "/api/pipeline-run-results/" , data = pipeline_run_result_payload
209+ )
177210 assert response .status_code == 201
178211 data = response .json ()
179212 assert data ["run_id" ] == pipeline_run_result_payload ["run_id" ]
180213
214+
181215def test_get_pipeline_run_result (auth_client , pipeline_run_result_payload , session ):
182216 pipeline_run_result = PipelineRunResult (** pipeline_run_result_payload )
183217 db .session .add (pipeline_run_result )
184218 db .session .commit ()
185- response = auth_client .get (f' /api/pipeline-run-results/{ pipeline_run_result .id } ' )
219+ response = auth_client .get (f" /api/pipeline-run-results/{ pipeline_run_result .id } " )
186220 assert response .status_code == 200
187221 data = response .json ()
188222 assert data ["run_id" ] == pipeline_run_result_payload ["run_id" ]
189223
224+
190225def test_update_pipeline_run_result (auth_client , pipeline_run_result_payload , session ):
191226 pipeline_run_result = PipelineRunResult (** pipeline_run_result_payload )
192227 db .session .add (pipeline_run_result )
193228 db .session .commit ()
194229 updated_payload = {"data" : {"result" : "failure" }}
195- response = auth_client .put (f'/api/pipeline-run-results/{ pipeline_run_result .id } ' , data = updated_payload )
230+ response = auth_client .put (
231+ f"/api/pipeline-run-results/{ pipeline_run_result .id } " , data = updated_payload
232+ )
196233 assert response .status_code == 200
197234 data = response .json ()
198235 assert data ["data" ] == {"result" : "failure" }
199236
237+
200238def test_delete_pipeline_run_result (auth_client , pipeline_run_result_payload , session ):
201239 pipeline_run_result = PipelineRunResult (** pipeline_run_result_payload )
202240 db .session .add (pipeline_run_result )
203241 db .session .commit ()
204- response = auth_client .delete (f' /api/pipeline-run-results/{ pipeline_run_result .id } ' )
242+ response = auth_client .delete (f" /api/pipeline-run-results/{ pipeline_run_result .id } " )
205243 assert response .status_code == 204
0 commit comments