Skip to content

Commit c64080d

Browse files
committed
Fix tests
1 parent 23cc77b commit c64080d

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

airbyte-integrations/connectors/source-jdbc/src/testFixtures/java/io/airbyte/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.common.collect.Lists;
2020
import io.airbyte.commons.json.Jsons;
2121
import io.airbyte.commons.resources.MoreResources;
22+
import io.airbyte.commons.string.Strings;
2223
import io.airbyte.commons.util.MoreIterators;
2324
import io.airbyte.db.Databases;
2425
import io.airbyte.db.jdbc.JdbcDatabase;
@@ -69,8 +70,10 @@
6970
// 4. Then implement the abstract methods documented below.
7071
public abstract class JdbcSourceAcceptanceTest {
7172

72-
public static String SCHEMA_NAME = "jdbc_integration_test1";
73-
public static String SCHEMA_NAME2 = "jdbc_integration_test2";
73+
// schema name must be randomized for each test run,
74+
// otherwise parallel runs can interfere with each other
75+
public static String SCHEMA_NAME = Strings.addRandomSuffix("jdbc_integration_test1", "_", 5).toLowerCase();
76+
public static String SCHEMA_NAME2 = Strings.addRandomSuffix("jdbc_integration_test2", "_", 5).toLowerCase();
7477
public static Set<String> TEST_SCHEMAS = ImmutableSet.of(SCHEMA_NAME, SCHEMA_NAME2);
7578

7679
public static String TABLE_NAME = "id_and_name";

airbyte-integrations/connectors/source-redshift/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/RedshiftSourceAcceptanceTest.java

+20-12
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public class RedshiftSourceAcceptanceTest extends SourceAcceptanceTest {
4141
protected ObjectNode config;
4242
protected JdbcDatabase database;
4343
protected String schemaName;
44+
protected String schemaToIgnore;
4445
protected String streamName;
4546

4647
protected static ObjectNode getStaticConfig() {
@@ -51,26 +52,31 @@ protected static ObjectNode getStaticConfig() {
5152
protected void setupEnvironment(final TestDestinationEnv environment) throws Exception {
5253
config = getStaticConfig();
5354

54-
database = Databases.createJdbcDatabase(
55-
config.get("username").asText(),
56-
config.get("password").asText(),
57-
String.format("jdbc:redshift://%s:%s/%s",
58-
config.get("host").asText(),
59-
config.get("port").asText(),
60-
config.get("database").asText()),
61-
RedshiftSource.DRIVER_CLASS);
55+
database = createDatabase(config);
6256

6357
schemaName = Strings.addRandomSuffix("integration_test", "_", 5).toLowerCase();
58+
schemaToIgnore = schemaName + "shouldIgnore";
6459

65-
// add the schema to test that only specified schemas will be retrieved
60+
// limit the connection to one schema only
6661
config = config.set("schemas", Jsons.jsonNode(List.of(schemaName)));
6762

6863
// create a test data
6964
createTestData(database, schemaName);
7065

7166
// create a schema with data that will not be used for testing, but would be used to check schema
7267
// filtering. This one should not be visible in results
73-
createTestData(database, schemaName + "shouldIgnore");
68+
createTestData(database, schemaToIgnore);
69+
}
70+
71+
protected static JdbcDatabase createDatabase(final JsonNode config) {
72+
return Databases.createJdbcDatabase(
73+
config.get("username").asText(),
74+
config.get("password").asText(),
75+
String.format("jdbc:redshift://%s:%s/%s",
76+
config.get("host").asText(),
77+
config.get("port").asText(),
78+
config.get("database").asText()),
79+
RedshiftSource.DRIVER_CLASS);
7480
}
7581

7682
protected void createTestData(final JdbcDatabase database, final String schemaName)
@@ -99,8 +105,10 @@ protected void createTestData(final JdbcDatabase database, final String schemaNa
99105

100106
@Override
101107
protected void tearDown(final TestDestinationEnv testEnv) throws SQLException {
102-
final String dropSchemaQuery = String.format("DROP SCHEMA IF EXISTS %s CASCADE", schemaName);
103-
database.execute(connection -> connection.createStatement().execute(dropSchemaQuery));
108+
database.execute(connection -> connection.createStatement()
109+
.execute(String.format("DROP SCHEMA IF EXISTS %s CASCADE", schemaName)));
110+
database.execute(connection -> connection.createStatement()
111+
.execute(String.format("DROP SCHEMA IF EXISTS %s CASCADE", schemaToIgnore)));
104112
}
105113

106114
@Override

airbyte-integrations/connectors/source-redshift/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/RedshiftSslSourceAcceptanceTest.java

+4-10
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@
44

55
package io.airbyte.integrations.io.airbyte.integration_tests.sources;
66

7-
import io.airbyte.commons.string.Strings;
7+
import com.fasterxml.jackson.databind.JsonNode;
88
import io.airbyte.db.Databases;
9+
import io.airbyte.db.jdbc.JdbcDatabase;
910
import io.airbyte.integrations.source.redshift.RedshiftSource;
10-
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
1111

1212
public class RedshiftSslSourceAcceptanceTest extends RedshiftSourceAcceptanceTest {
1313

14-
@Override
15-
protected void setupEnvironment(final TestDestinationEnv environment) throws Exception {
16-
config = getStaticConfig();
17-
18-
database = Databases.createJdbcDatabase(
14+
protected static JdbcDatabase createDatabase(final JsonNode config) {
15+
return Databases.createJdbcDatabase(
1916
config.get("username").asText(),
2017
config.get("password").asText(),
2118
String.format("jdbc:redshift://%s:%s/%s",
@@ -25,9 +22,6 @@ protected void setupEnvironment(final TestDestinationEnv environment) throws Exc
2522
RedshiftSource.DRIVER_CLASS,
2623
"ssl=true;" +
2724
"sslfactory=com.amazon.redshift.ssl.NonValidatingFactory");
28-
29-
schemaName = Strings.addRandomSuffix("integration_test", "_", 5).toLowerCase();
30-
createTestData(database, schemaName);
3125
}
3226

3327
}

0 commit comments

Comments
 (0)