From 5d84e7b67d5917abdddef1f1b2114c58ea7dfa5c Mon Sep 17 00:00:00 2001 From: Christopher Grote Date: Thu, 30 Jan 2025 12:18:13 +0000 Subject: [PATCH] Fixes parallel integration tests with domains and products Signed-off-by: Christopher Grote --- .../main/kotlin/com/atlan/pkg/PackageTest.kt | 29 +++++++++---------- .../src/test/kotlin/ImpactReportCSVTest.kt | 4 +-- .../src/test/kotlin/ImpactReportTest.kt | 4 +-- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/package-toolkit/testing/src/main/kotlin/com/atlan/pkg/PackageTest.kt b/package-toolkit/testing/src/main/kotlin/com/atlan/pkg/PackageTest.kt index 670e161d12..31b72a0a6f 100644 --- a/package-toolkit/testing/src/main/kotlin/com/atlan/pkg/PackageTest.kt +++ b/package-toolkit/testing/src/main/kotlin/com/atlan/pkg/PackageTest.kt @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.pkg +import co.elastic.clients.elasticsearch._types.SortOrder import com.atlan.AtlanClient import com.atlan.exception.ConflictException import com.atlan.model.assets.Asset @@ -479,20 +480,22 @@ abstract class PackageTest( * * @param domainName of the domain */ - fun removeDomainAndProduct(domainName: String) { - val domains = + fun removeDomainAndChildren(domainName: String) { + val domain = DataDomain .select(client) .where(DataDomain.NAME.eq(domainName)) + .whereNot(DataDomain.PARENT_DOMAIN_QUALIFIED_NAME.hasAnyValue()) .stream() .toList() + .firstOrNull() try { - if (domains.isNotEmpty()) { + if (domain != null) { // find all the products under the domain val productGuids = DataProduct .select(client) - .where(DataProduct.PARENT_DOMAIN_QUALIFIED_NAME.eq(domains[0].qualifiedName)) + .where(DataProduct.PARENT_DOMAIN_QUALIFIED_NAME.startsWith(domain.qualifiedName)) .stream() .map { it.guid } .toList() @@ -501,23 +504,19 @@ abstract class PackageTest( } // find all subdomains under the domain - val subDomainNames = + val subdomains = DataDomain .select(client) - .where(DataDomain.PARENT_DOMAIN_QUALIFIED_NAME.eq(domains[0].qualifiedName)) + .where(DataDomain.PARENT_DOMAIN_QUALIFIED_NAME.startsWith(domain.qualifiedName)) + .sort(DataDomain.QUALIFIED_NAME.order(SortOrder.Desc)) .stream() - .map { it.name } + .map { it.guid } .toList() - if (subDomainNames.isNotEmpty()) { - subDomainNames.forEach { - removeDomainAndProduct(it) - } - } - // delete the domain - domains.forEach { domain -> - client.assets.delete(domain.guid, AtlanDeleteType.HARD) + subdomains.forEach { subdomain -> + client.assets.delete(subdomain, AtlanDeleteType.HARD) } + client.assets.delete(domain.guid, AtlanDeleteType.HARD) } } catch (e: Exception) { logger.error(e) { "Unable to remove domain: $domainName" } diff --git a/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportCSVTest.kt b/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportCSVTest.kt index 9dee202a43..b607692925 100644 --- a/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportCSVTest.kt +++ b/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportCSVTest.kt @@ -22,7 +22,7 @@ import kotlin.test.assertEquals class ImpactReportCSVTest : PackageTest("irc") { override val logger = Utils.getLogger(this.javaClass.name) - private val dataDomain = makeUnique("g1") + private val dataDomain = makeUnique("cd1") private val files = listOf( "debug.log", @@ -47,7 +47,7 @@ class ImpactReportCSVTest : PackageTest("irc") { } override fun teardown() { - removeDomainAndProduct(dataDomain) + removeDomainAndChildren(dataDomain) } @Test diff --git a/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportTest.kt b/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportTest.kt index 84edc48d58..a5d474d152 100644 --- a/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportTest.kt +++ b/samples/packages/metadata-impact-report/src/test/kotlin/ImpactReportTest.kt @@ -19,7 +19,7 @@ import kotlin.test.Test class ImpactReportTest : PackageTest("ir") { override val logger = Utils.getLogger(this.javaClass.name) - private val dataDomain = makeUnique("g1") + private val dataDomain = makeUnique("d1") private val files = listOf( "debug.log", @@ -37,7 +37,7 @@ class ImpactReportTest : PackageTest("ir") { } override fun teardown() { - removeDomainAndProduct(dataDomain) + removeDomainAndChildren(dataDomain) } @Test(groups = ["mdir.create"])