From eed3b30af4f881287a9baae4dceee4029da45f3c Mon Sep 17 00:00:00 2001 From: Sarah French Date: Wed, 20 Mar 2024 00:04:13 +0100 Subject: [PATCH] Add reusible test util that pulls a given build from a project, refactor test --- .../terraform/.teamcity/tests/sweepers.kt | 24 ++++++------------- .../terraform/.teamcity/tests/test_utils.kt | 15 ++++++++++-- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/mmv1/third_party/terraform/.teamcity/tests/sweepers.kt b/mmv1/third_party/terraform/.teamcity/tests/sweepers.kt index d6805843a39c..b0a05dd1f322 100644 --- a/mmv1/third_party/terraform/.teamcity/tests/sweepers.kt +++ b/mmv1/third_party/terraform/.teamcity/tests/sweepers.kt @@ -110,30 +110,20 @@ class SweeperTests { val project = googleCloudRootProject(testContextParameters()) // Find GA nightly test project's service sweeper - val gaNightlyTestProject = getSubProject(project, gaProjectName, nightlyTestsProjectName) - val sweeperGa: BuildType? = gaNightlyTestProject!!.buildTypes.find { p-> p.name == ServiceSweeperName} - if (sweeperGa == null) { - Assert.fail("Could not find the sweeper build in the Google (GA) Nightly Test project") - } + val gaNightlyTests: Project = getSubProject(project, gaProjectName, nightlyTestsProjectName) + val sweeperGa: BuildType = getBuildFromProject(gaNightlyTests, ServiceSweeperName) // Find Beta nightly test project's service sweeper - val betaNightlyTestProject = getSubProject(project, betaProjectName, nightlyTestsProjectName) - val sweeperBeta: BuildType? = betaNightlyTestProject!!.buildTypes.find { p-> p.name == ServiceSweeperName} - if (sweeperBeta == null) { - Assert.fail("Could not find the sweeper build in the Google (Beta) Nightly Test project") - } + val betaNightlyTests : Project = getSubProject(project, betaProjectName, nightlyTestsProjectName) + val sweeperBeta: BuildType = getBuildFromProject(betaNightlyTests, ServiceSweeperName) // Find Project sweeper project's build - val projectSweeperProject: Project? = project.subProjects.find { p-> p.name == projectSweeperProjectName} + val projectSweeperProject : Project? = project.subProjects.find { p-> p.name == projectSweeperProjectName} if (projectSweeperProject == null) { Assert.fail("Could not find the Project Sweeper project") } - val projectSweeper: BuildType? = projectSweeperProject!!.buildTypes.find { p-> p.name == ProjectSweeperName} - if (projectSweeper == null) { - Assert.fail("Could not find the sweeper build in the Google (Beta) Nightly Test project") - } - - + val projectSweeper: BuildType = getBuildFromProject(projectSweeperProject!!, ProjectSweeperName) + // Check only one schedule trigger is on the builds in question assertTrue(sweeperGa!!.triggers.items.size == 1) assertTrue(sweeperBeta!!.triggers.items.size == 1) diff --git a/mmv1/third_party/terraform/.teamcity/tests/test_utils.kt b/mmv1/third_party/terraform/.teamcity/tests/test_utils.kt index 162a38eccf5c..04ba0e7c8d05 100644 --- a/mmv1/third_party/terraform/.teamcity/tests/test_utils.kt +++ b/mmv1/third_party/terraform/.teamcity/tests/test_utils.kt @@ -8,6 +8,8 @@ package tests import builds.AllContextParameters +import jetbrains.buildServer.BuildProject +import jetbrains.buildServer.configs.kotlin.BuildType import jetbrains.buildServer.configs.kotlin.Project import org.junit.Assert @@ -56,15 +58,24 @@ fun testContextParameters(): AllContextParameters { fun getSubProject(rootProject: Project, parentProjectName: String, subProjectName: String): Project { // Find parent project within root - var parentProject: Project? = rootProject.subProjects.find { p-> p.name == parentProjectName} + val parentProject: Project? = rootProject.subProjects.find { p-> p.name == parentProjectName} if (parentProject == null) { Assert.fail("Could not find the $parentProjectName project") } // Find subproject within parent identified above - var subProject: Project? = parentProject!!.subProjects.find { p-> p.name == subProjectName} + val subProject: Project? = parentProject!!.subProjects.find { p-> p.name == subProjectName} if (subProject == null) { Assert.fail("Could not find the $subProjectName project") } return subProject!! +} + +fun getBuildFromProject(parentProject: Project, buildName: String): BuildType { + val buildType: BuildType? = parentProject!!.buildTypes.find { p-> p.name == buildName} + if (buildType == null) { + Assert.fail("Could not find the '$buildName' build in project ${parentProject.name}") + } + + return buildType!! } \ No newline at end of file