Skip to content

Commit 1d40978

Browse files
authored
fix: only reuse test project when intended. (#675)
this fixes broken tests in main & multiple PRs
1 parent b08ff18 commit 1d40978

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

ami/tests/fixtures/main.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
105115
def 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

ami/tests/fixtures/storage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
)
2222

2323

24-
def create_storage_source(project: Project, name: str) -> S3StorageSource:
24+
def create_storage_source(project: Project, name: str, prefix: str = S3_TEST_CONFIG.prefix) -> S3StorageSource:
2525
s3.create_bucket(config=S3_TEST_CONFIG, bucket_name=S3_TEST_CONFIG.bucket_name)
2626
data_source, _created = S3StorageSource.objects.get_or_create(
2727
project=project,
2828
name=name,
2929
defaults=dict(
3030
bucket=S3_TEST_CONFIG.bucket_name,
31-
prefix=S3_TEST_CONFIG.prefix,
31+
prefix=prefix,
3232
endpoint_url=S3_TEST_CONFIG.endpoint_url,
3333
access_key=S3_TEST_CONFIG.access_key_id,
3434
secret_key=S3_TEST_CONFIG.secret_access_key,

0 commit comments

Comments
 (0)