Skip to content

Commit b74867f

Browse files
committed
maybe fix tests
1 parent 5f06e35 commit b74867f

File tree

3 files changed

+33
-10
lines changed

3 files changed

+33
-10
lines changed

airbyte-integrations/connectors/destination-databricks/src/test-integration/kotlin/io/airbyte/integrations/destination/databricks/typededupe/AbstractDatabricksTypingDedupingTest.kt

+21-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package io.airbyte.integrations.destination.databricks.typededupe
66

77
import com.fasterxml.jackson.databind.JsonNode
8+
import com.fasterxml.jackson.databind.node.ObjectNode
89
import io.airbyte.cdk.db.jdbc.DefaultJdbcDatabase
910
import io.airbyte.cdk.db.jdbc.JdbcDatabase
1011
import io.airbyte.cdk.db.jdbc.JdbcSourceOperations
@@ -15,16 +16,18 @@ import io.airbyte.integrations.base.destination.typing_deduping.BaseTypingDedupi
1516
import io.airbyte.integrations.base.destination.typing_deduping.SqlGenerator
1617
import io.airbyte.integrations.base.destination.typing_deduping.StreamId
1718
import io.airbyte.integrations.destination.databricks.DatabricksConnectorClientsFactory
18-
import io.airbyte.integrations.destination.databricks.DatabricksIntegrationTestUtils
1919
import io.airbyte.integrations.destination.databricks.jdbc.DatabricksNamingTransformer
2020
import io.airbyte.integrations.destination.databricks.jdbc.DatabricksSqlGenerator
2121
import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorConfig
2222
import java.nio.file.Path
2323
import java.sql.Connection
2424
import java.sql.ResultSet
25+
import java.util.Locale
26+
import org.apache.commons.lang3.RandomStringUtils
2527

2628
abstract class AbstractDatabricksTypingDedupingTest(
2729
private val jdbcDatabase: JdbcDatabase,
30+
private val jsonConfig: JsonNode,
2831
private val connectorConfig: DatabricksConnectorConfig,
2932
) : BaseTypingDedupingTest() {
3033
override val imageName: String
@@ -33,23 +36,35 @@ abstract class AbstractDatabricksTypingDedupingTest(
3336
companion object {
3437
fun setupDatabase(
3538
connectorConfigPath: String
36-
): Pair<JdbcDatabase, DatabricksConnectorConfig> {
37-
val config = Jsons.deserialize(IOs.readFile(Path.of(connectorConfigPath)))
38-
val connectorConfig = DatabricksConnectorConfig.deserialize(config)
39+
): Triple<JdbcDatabase, JsonNode, DatabricksConnectorConfig> {
40+
var jsonConfig = Jsons.deserialize(IOs.readFile(Path.of(connectorConfigPath)))
41+
42+
// Randomize the default namespace to avoid collisions between
43+
// concurrent test runs.
44+
// Technically, we should probably do this in `generateConfig`,
45+
// because there could be concurrent test runs within a single class,
46+
// but we currently only have a single test that uses the default
47+
// namespace anyway.
48+
val uniqueSuffix = RandomStringUtils.randomAlphabetic(10).lowercase(Locale.getDefault())
49+
val defaultSchema = "typing_deduping_default_schema_$uniqueSuffix"
50+
val connectorConfig =
51+
DatabricksConnectorConfig.deserialize(jsonConfig).copy(schema = defaultSchema)
52+
(jsonConfig as ObjectNode).put("schema", defaultSchema)
53+
3954
val jdbcDatabase =
4055
DefaultJdbcDatabase(
4156
DatabricksConnectorClientsFactory.createDataSource(connectorConfig)
4257
)
4358
// This will trigger warehouse start
4459
jdbcDatabase.execute("SELECT 1")
4560

46-
return Pair(jdbcDatabase, connectorConfig)
61+
return Triple(jdbcDatabase, jsonConfig, connectorConfig)
4762
}
4863
}
4964

5065
override fun generateConfig(): JsonNode {
5166
// This method is called in BeforeEach so setup any other references needed per test
52-
return DatabricksIntegrationTestUtils.oauthConfigJson.deepCopy()
67+
return jsonConfig.deepCopy()
5368
}
5469

5570
private fun rawTableIdentifier(

airbyte-integrations/connectors/destination-databricks/src/test-integration/kotlin/io/airbyte/integrations/destination/databricks/typededupe/DatabricksOauthTypingDedupingTest.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,28 @@
44

55
package io.airbyte.integrations.destination.databricks.typededupe
66

7+
import com.fasterxml.jackson.databind.JsonNode
78
import io.airbyte.cdk.db.jdbc.JdbcDatabase
89
import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorConfig
910
import java.util.concurrent.TimeUnit
1011
import org.junit.jupiter.api.BeforeAll
1112
import org.junit.jupiter.api.Timeout
1213

1314
class DatabricksOauthTypingDedupingTest :
14-
AbstractDatabricksTypingDedupingTest(jdbcDatabase, connectorConfig) {
15+
AbstractDatabricksTypingDedupingTest(jdbcDatabase, jsonConfig, connectorConfig) {
1516
companion object {
1617
private lateinit var jdbcDatabase: JdbcDatabase
18+
private lateinit var jsonConfig: JsonNode
1719
private lateinit var connectorConfig: DatabricksConnectorConfig
1820

1921
@JvmStatic
2022
@BeforeAll
2123
@Timeout(value = 10, unit = TimeUnit.MINUTES)
2224
fun setupDatabase() {
23-
val (jdbcDatabase, connectorConfig) = setupDatabase("secrets/oauth_config.json")
25+
val (jdbcDatabase, jsonConfig, connectorConfig) =
26+
setupDatabase("secrets/oauth_config.json")
2427
this.jdbcDatabase = jdbcDatabase
28+
this.jsonConfig = jsonConfig
2529
this.connectorConfig = connectorConfig
2630
}
2731
}

airbyte-integrations/connectors/destination-databricks/src/test-integration/kotlin/io/airbyte/integrations/destination/databricks/typededupe/DatabricksPersonalAccessTokenTypingDedupingTest.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,28 @@
44

55
package io.airbyte.integrations.destination.databricks.typededupe
66

7+
import com.fasterxml.jackson.databind.JsonNode
78
import io.airbyte.cdk.db.jdbc.JdbcDatabase
89
import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorConfig
910
import java.util.concurrent.TimeUnit
1011
import org.junit.jupiter.api.BeforeAll
1112
import org.junit.jupiter.api.Timeout
1213

1314
class DatabricksPersonalAccessTokenTypingDedupingTest :
14-
AbstractDatabricksTypingDedupingTest(jdbcDatabase, connectorConfig) {
15+
AbstractDatabricksTypingDedupingTest(jdbcDatabase, jsonConfig, connectorConfig) {
1516
companion object {
1617
private lateinit var jdbcDatabase: JdbcDatabase
18+
private lateinit var jsonConfig: JsonNode
1719
private lateinit var connectorConfig: DatabricksConnectorConfig
1820

1921
@JvmStatic
2022
@BeforeAll
2123
@Timeout(value = 10, unit = TimeUnit.MINUTES)
2224
fun setupDatabase() {
23-
val (jdbcDatabase, connectorConfig) = setupDatabase("secrets/pat_config.json")
25+
val (jdbcDatabase, jsonConfig, connectorConfig) =
26+
setupDatabase("secrets/pat_config.json")
2427
this.jdbcDatabase = jdbcDatabase
28+
this.jsonConfig = jsonConfig
2529
this.connectorConfig = connectorConfig
2630
}
2731
}

0 commit comments

Comments
 (0)