Skip to content

Commit d1e0cdd

Browse files
committed
Fix virtual repository package type mismatch in tests
- Virtual repositories now use child repositories with matching package types - Fixes test failures for CustomPropertiesRepositoryTests, P2PackageTypeRepositoryTests, and TerraformPackageTypeRepositoryTests - Resolves issue where virtual repos tried to include Generic repos when they had specific package types (Composer, P2, Terraform)
1 parent 07ebdba commit d1e0cdd

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

services/src/test/groovy/org/jfrog/artifactory/client/BaseRepositoryTests.groovy

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,25 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase {
153153
}
154154

155155
if (prepareVirtualRepo) {
156-
RepositorySettings settings = getRepositorySettings(RepositoryTypeImpl.VIRTUAL)
157-
artifactory.repositories().create(0, genericRepo)
156+
RepositorySettings virtualSettings = getRepositorySettings(RepositoryTypeImpl.VIRTUAL)
158157
def repos = new ArrayList<String>()
159-
repos.add(genericRepo.getKey())
158+
159+
// Determine which repository to use for the virtual repo
160+
// For package types that don't support local repos (like P2), use remote repo
161+
// Otherwise, create a local repo with matching package type
162+
if (prepareLocalRepo && localRepo != null) {
163+
// Use the existing local repo if it's prepared
164+
artifactory.repositories().create(0, localRepo)
165+
repos.add(localRepo.getKey())
166+
} else if (prepareRemoteRepo && remoteRepo != null) {
167+
// Use remote repo for package types that don't support local repos (e.g., P2)
168+
artifactory.repositories().create(0, remoteRepo)
169+
repos.add(remoteRepo.getKey())
170+
} else if (prepareGenericRepo && genericRepo != null) {
171+
// Fallback to generic repo
172+
artifactory.repositories().create(0, genericRepo)
173+
repos.add(genericRepo.getKey())
174+
}
160175

161176
virtualRepo = artifactory.repositories().builders().virtualRepositoryBuilder()
162177
.key("$REPO_NAME_PREFIX-virtual-$id")
@@ -166,9 +181,9 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase {
166181
.excludesPattern("org/${rnd.nextInt()}/**")
167182
.includesPattern("org/${rnd.nextInt()}/**")
168183
.repositories(repos)
169-
.repositorySettings(settings)
184+
.repositorySettings(virtualSettings)
170185
.customProperties(customProperties)
171-
.defaultDeploymentRepo(repos.last())
186+
.defaultDeploymentRepo(repos.isEmpty() ? null : repos.last())
172187
.build()
173188
}
174189
}

0 commit comments

Comments
 (0)