@@ -102,19 +102,32 @@ def create_deployment(
102102 return deployment
103103
104104
105+ def create_test_project (name : str | None ) -> Project :
106+ short_id = uuid .uuid4 ().hex [:8 ]
107+ name = name or f"Test Project { short_id } "
108+ project = Project .objects .create (name = name )
109+ data_source = create_storage_source (project , f"Test Data Source { short_id } " , prefix = f"{ short_id } " )
110+ create_deployment (project , data_source , f"Test Deployment { short_id } " )
111+ create_ml_pipeline (project )
112+ return project
113+
114+
105115def setup_test_project (reuse = True ) -> tuple [Project , Deployment ]:
106- project = Project .objects .filter (name__startswith = "Test Project" ).first ()
107-
108- if not project or not reuse :
109- short_id = uuid .uuid4 ().hex [:8 ]
110- project = Project .objects .create (name = f"Test Project { short_id } " )
111- data_source = create_storage_source (project , f"Test Data Source { short_id } " )
112- deployment = create_deployment (project , data_source , f"Test Deployment { short_id } " )
113- create_ml_pipeline (project )
116+ """
117+ Always return a valid project and deployment, creating them if necessary.
118+ """
119+ project = None
120+ shared_test_project_name = "Shared Test Project"
121+
122+ if reuse :
123+ project = Project .objects .filter (name = shared_test_project_name ).first ()
124+ if not project :
125+ project = create_test_project (name = shared_test_project_name )
114126 else :
115- deployment = Deployment .objects .filter (project = project ).first ()
116- assert deployment , "No deployment found for existing project. Create a new project instead."
127+ project = create_test_project (name = None )
117128
129+ deployment = Deployment .objects .filter (project = project ).first ()
130+ assert deployment , f"No deployment found for project { project } . Recreate the project."
118131 return project , deployment
119132
120133
0 commit comments