You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ma...@apache.org on 2017/03/18 09:59:21 UTC

sqoop git commit: SQOOP-3105: Add cleanup logic for PostgreSQL related test cases

Repository: sqoop
Updated Branches:
  refs/heads/trunk ac5ca7c02 -> 6d8a670d3


SQOOP-3105: Add cleanup logic for PostgreSQL related test cases

(Boglarka Egyed via Attila Szabo)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/6d8a670d
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/6d8a670d
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/6d8a670d

Branch: refs/heads/trunk
Commit: 6d8a670d3246ad1d1ab95720f26297d2b4e52d27
Parents: ac5ca7c
Author: Attila Szabo <ma...@apache.org>
Authored: Sat Mar 18 10:56:29 2017 +0100
Committer: Attila Szabo <ma...@apache.org>
Committed: Sat Mar 18 10:56:29 2017 +0100

----------------------------------------------------------------------
 .../sqoop/manager/PostgresqlExportTest.java     | 50 +++++++++++++-------
 .../sqoop/manager/PostgresqlImportTest.java     | 35 +++++++++++++-
 2 files changed, 66 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/6d8a670d/src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java b/src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java
index ed5917f..38d6ba6 100644
--- a/src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/PostgresqlExportTest.java
@@ -73,6 +73,10 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     return false;
   }
 
+  private String getDropTableStatement(String tableName, String schema) {
+    return "DROP TABLE IF EXISTS " + quoteTableOrSchemaName(schema) + "." + quoteTableOrSchemaName(tableName);
+  }
+
   @Before
   public void setUp() {
     super.setUp();
@@ -98,6 +102,16 @@ public class PostgresqlExportTest extends ExportJobTestCase {
 
   @Override
   public void tearDown() {
+    try {
+      Statement stmt = connection.createStatement();
+      stmt.executeUpdate(getDropTableStatement(TABLE_NAME, SCHEMA_PUBLIC));
+      stmt.executeUpdate(getDropTableStatement(STAGING_TABLE_NAME, SCHEMA_PUBLIC));
+      stmt.executeUpdate(getDropTableStatement(TABLE_NAME, SCHEMA_SPECIAL));
+      stmt.executeUpdate(getDropTableStatement(STAGING_TABLE_NAME, SCHEMA_SPECIAL));
+    } catch(SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+
     super.tearDown();
 
     try {
@@ -150,9 +164,9 @@ public class PostgresqlExportTest extends ExportJobTestCase {
           + "AS $$ "
           + "BEGIN "
           + "INSERT INTO "
-          + escapeTableOrSchemaName(SCHEMA_PUBLIC)
+          + quoteTableOrSchemaName(SCHEMA_PUBLIC)
           + "."
-          + escapeTableOrSchemaName(TABLE_NAME)
+          + quoteTableOrSchemaName(TABLE_NAME)
           + " ("
           + manager.escapeColName("id")
           +", "
@@ -199,7 +213,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
       // Create schema if not exists in dummy way (always create and ignore
       // errors.
       try {
-        st.executeUpdate("CREATE SCHEMA " + escapeTableOrSchemaName(schema));
+        st.executeUpdate("CREATE SCHEMA " + quoteTableOrSchemaName(schema));
         connection.commit();
       } catch (SQLException e) {
         LOG.info("Couldn't create schema " + schema + " (is o.k. as long as"
@@ -207,8 +221,8 @@ public class PostgresqlExportTest extends ExportJobTestCase {
         connection.rollback();
       }
 
-      String fullTableName = escapeTableOrSchemaName(schema)
-        + "." + escapeTableOrSchemaName(name);
+      String fullTableName = quoteTableOrSchemaName(schema)
+        + "." + quoteTableOrSchemaName(name);
 
       try {
         // Try to remove the table first. DROP TABLE IF EXISTS didn't
@@ -304,7 +318,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
 
     runExport(getArgv(true));
 
-    assertRowCount(2, escapeTableOrSchemaName(TABLE_NAME), connection);
+    assertRowCount(2, quoteTableOrSchemaName(TABLE_NAME), connection);
   }
 
   @Test
@@ -316,7 +330,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
 
     runExport(getArgv(false));
 
-    assertRowCount(2, escapeTableOrSchemaName(TABLE_NAME), connection);
+    assertRowCount(2, quoteTableOrSchemaName(TABLE_NAME), connection);
   }
 
   @Test
@@ -330,7 +344,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
 
     runExport(getArgv(true, extra));
 
-    assertRowCount(2, escapeTableOrSchemaName(TABLE_NAME), connection);
+    assertRowCount(2, quoteTableOrSchemaName(TABLE_NAME), connection);
   }
 
   @Test
@@ -344,7 +358,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
 
     runExport(getArgv(true, extra));
 
-    assertRowCount(2, escapeTableOrSchemaName(TABLE_NAME), connection);
+    assertRowCount(2, quoteTableOrSchemaName(TABLE_NAME), connection);
   }
 
   @Test
@@ -362,8 +376,8 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     runExport(getArgv(true, extra));
 
     assertRowCount(2,
-      escapeTableOrSchemaName(SCHEMA_SPECIAL)
-        + "." + escapeTableOrSchemaName(TABLE_NAME),
+      quoteTableOrSchemaName(SCHEMA_SPECIAL)
+        + "." + quoteTableOrSchemaName(TABLE_NAME),
       connection);
   }
 
@@ -385,8 +399,8 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     runExport(getArgv(true, extra));
 
     assertRowCount(2,
-      escapeTableOrSchemaName(SCHEMA_SPECIAL)
-        + "." + escapeTableOrSchemaName(TABLE_NAME),
+      quoteTableOrSchemaName(SCHEMA_SPECIAL)
+        + "." + quoteTableOrSchemaName(TABLE_NAME),
       connection);
   }
 
@@ -410,8 +424,8 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     runExport(getArgv(true, extra));
 
     assertRowCount(2,
-      escapeTableOrSchemaName(SCHEMA_SPECIAL)
-        + "." + escapeTableOrSchemaName(TABLE_NAME),
+      quoteTableOrSchemaName(SCHEMA_SPECIAL)
+        + "." + quoteTableOrSchemaName(TABLE_NAME),
       connection);
   }
 
@@ -432,8 +446,8 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     runExport(getArgv(true, extra));
 
     assertRowCount(2,
-      escapeTableOrSchemaName(SCHEMA_SPECIAL)
-        + "." + escapeTableOrSchemaName(TABLE_NAME),
+      quoteTableOrSchemaName(SCHEMA_SPECIAL)
+        + "." + quoteTableOrSchemaName(TABLE_NAME),
       connection);
   }
 
@@ -468,7 +482,7 @@ public class PostgresqlExportTest extends ExportJobTestCase {
     }
   }
 
-  public String escapeTableOrSchemaName(String tableName) {
+  public String quoteTableOrSchemaName(String tableName) {
     return "\"" + tableName + "\"";
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6d8a670d/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java
----------------------------------------------------------------------
diff --git a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java
index 70ee640..5872d25 100644
--- a/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/PostgresqlImportTest.java
@@ -31,6 +31,7 @@ import java.util.Arrays;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -109,11 +110,21 @@ public class PostgresqlImportTest extends ImportJobTestCase {
   static final String SCHEMA_SPECIAL = "special";
   static final String CONNECT_STRING = HOST_URL + DATABASE_NAME;
 
+  protected Connection connection;
+
   @Override
   protected boolean useHsqldbTestServer() {
     return false;
   }
 
+  public String quoteTableOrSchemaName(String tableName) {
+    return "\"" + tableName + "\"";
+  }
+
+  private String getDropTableStatement(String tableName, String schema) {
+    return "DROP TABLE IF EXISTS " + quoteTableOrSchemaName(schema) + "." + quoteTableOrSchemaName(tableName);
+  }
+
   @Before
   public void setUp() {
     super.setUp();
@@ -128,13 +139,35 @@ public class PostgresqlImportTest extends ImportJobTestCase {
     LOG.debug("setUp complete.");
   }
 
+  @After
+  public void tearDown() {
+    try {
+      Statement stmt = connection.createStatement();
+      stmt.executeUpdate(getDropTableStatement(TABLE_NAME, SCHEMA_PUBLIC));
+      stmt.executeUpdate(getDropTableStatement(NULL_TABLE_NAME, SCHEMA_PUBLIC));
+      stmt.executeUpdate(getDropTableStatement(SPECIAL_TABLE_NAME, SCHEMA_PUBLIC));
+      stmt.executeUpdate(getDropTableStatement(DIFFERENT_TABLE_NAME, SCHEMA_SPECIAL));
+    } catch (SQLException e) {
+      LOG.error("Can't clean up the database:", e);
+    }
+
+    super.tearDown();
+
+    try {
+      connection.close();
+    } catch (SQLException e) {
+      LOG.error("Ignoring exception in tearDown", e);
+    }
+  }
+
+
+
   public void setUpData(String tableName, String schema, boolean nullEntry) {
     SqoopOptions options = new SqoopOptions(CONNECT_STRING, tableName);
     options.setUsername(DATABASE_USER);
     options.setPassword(PASSWORD);
 
     ConnManager manager = null;
-    Connection connection = null;
     Statement st = null;
 
     try {