Skip to content

Commit 3970d4d

Browse files
committed
unify test
1 parent c60e31b commit 3970d4d

File tree

3 files changed

+44
-66
lines changed

3 files changed

+44
-66
lines changed

sql/core/src/test/scala/org/apache/spark/sql/execution/command/DropNamespaceSuiteBase.scala

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package org.apache.spark.sql.execution.command
1919

20-
import org.apache.spark.sql.{QueryTest, Row}
20+
import org.apache.spark.sql.{AnalysisException, QueryTest, Row}
2121
import org.apache.spark.sql.internal.SQLConf
2222
import org.apache.spark.sql.types.{StringType, StructType}
2323

@@ -36,41 +36,64 @@ trait DropNamespaceSuiteBase extends QueryTest with DDLCommandTestUtils {
3636

3737
protected def builtinTopNamespaces: Seq[String] = Seq.empty
3838
protected def isCasePreserving: Boolean = true
39+
protected def assertDropFails
3940

40-
protected def checkNamespace(sqlText: String, expected: Seq[String]) = {
41-
val df = spark.sql(sqlText)
41+
protected def checkNamespace(expected: Seq[String]) = {
42+
val df = spark.sql(s"SHOW NAMESPACES IN $catalog")
4243
assert(df.schema === new StructType().add("namespace", StringType, false))
4344
checkAnswer(df, expected.map(Row(_)))
4445
}
4546

4647
test("basic tests") {
4748
sql(s"CREATE NAMESPACE $catalog.ns")
48-
checkNamespace(s"SHOW NAMESPACES IN $catalog", Seq("ns") ++ builtinTopNamespaces)
49+
checkNamespace(Seq("ns") ++ builtinTopNamespaces)
4950

5051
sql(s"DROP NAMESPACE $catalog.ns")
51-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
52+
checkNamespace(builtinTopNamespaces)
5253
}
5354

5455
test("DropNamespace: test handling of 'IF EXISTS'") {
5556
// It must not throw any exceptions
5657
sql(s"DROP NAMESPACE IF EXISTS $catalog.unknown")
57-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
58+
checkNamespace(builtinTopNamespaces)
59+
}
60+
61+
test("DropNamespace: Namespace does not exist") {
62+
// Namespace $catalog.unknown does not exist.
63+
val message = intercept[AnalysisException] {
64+
sql(s"DROP DATABASE $catalog.unknown")
65+
}.getMessage
66+
assert(message.contains(s"'unknown' not found"))
67+
}
68+
69+
test("DropNamespace: drop non-empty namespace with a non-cascading mode") {
70+
sql(s"CREATE NAMESPACE $catalog.ns")
71+
sql(s"CREATE TABLE $catalog.ns.table (id bigint) $defaultUsing")
72+
checkNamespace(Seq("ns") ++ builtinTopNamespaces)
73+
74+
// $catalog.ns.table is present, thus $catalog.ns cannot be dropped.
75+
assertDropFails
76+
sql(s"DROP TABLE $catalog.ns.table")
77+
78+
// Now that $catalog.ns is empty, it can be dropped.
79+
sql(s"DROP NAMESPACE $catalog.ns")
80+
checkNamespace(builtinTopNamespaces)
5881
}
5982

6083
test("DropNamespace: drop non-empty namespace with a cascade mode") {
6184
sql(s"CREATE NAMESPACE $catalog.ns")
6285
sql(s"CREATE TABLE $catalog.ns.table (id bigint) $defaultUsing")
63-
checkNamespace(s"SHOW NAMESPACES IN $catalog", Seq("ns") ++ builtinTopNamespaces)
86+
checkNamespace(Seq("ns") ++ builtinTopNamespaces)
6487

6588
sql(s"DROP NAMESPACE $catalog.ns CASCADE")
66-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
89+
checkNamespace(builtinTopNamespaces)
6790
}
6891

6992
test("DropNamespace: drop current namespace") {
7093
sql(s"CREATE NAMESPACE $catalog.ns")
7194
sql(s"USE $catalog.ns")
7295
sql(s"DROP NAMESPACE $catalog.ns")
73-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
96+
checkNamespace(builtinTopNamespaces)
7497
}
7598

7699
test("DropNamespace: drop namespace with case sensitivity") {
@@ -84,7 +107,7 @@ trait DropNamespaceSuiteBase extends QueryTest with DDLCommandTestUtils {
84107

85108
sql(s"DROP NAMESPACE $catalog.$expected")
86109
sql(s"DROP NAMESPACE $catalog.bbb")
87-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
110+
checkNamespace(builtinTopNamespaces)
88111
}
89112
}
90113
}

sql/core/src/test/scala/org/apache/spark/sql/execution/command/v1/DropNamespaceSuite.scala

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,40 +31,18 @@ import org.apache.spark.sql.execution.command
3131
trait DropNamespaceSuiteBase extends command.DropNamespaceSuiteBase {
3232
override protected def builtinTopNamespaces: Seq[String] = Seq("default")
3333

34-
test("DropNamespace: drop default namespace") {
35-
val message = intercept[AnalysisException] {
36-
sql(s"DROP NAMESPACE default")
37-
}.getMessage
38-
assert(message.contains("Can not drop default database"))
39-
}
40-
41-
test("DropNamespace: drop non-empty namespace with a non-cascading mode") {
42-
sql(s"CREATE NAMESPACE $catalog.ns")
43-
sql(s"CREATE TABLE $catalog.ns.table (id bigint) $defaultUsing")
44-
checkNamespace(s"SHOW NAMESPACES IN $catalog", Seq("ns") ++ builtinTopNamespaces)
45-
46-
def assertDropFails(): Unit = {
47-
val e = intercept[AnalysisException] {
48-
sql(s"DROP NAMESPACE $catalog.ns")
49-
}
50-
assert(e.getMessage.contains("Database ns is not empty. One or more tables exist"))
34+
override protected def assertDropFails(): Unit = {
35+
val e = intercept[AnalysisException] {
36+
sql(s"DROP NAMESPACE $catalog.ns")
5137
}
52-
53-
// $catalog.ns.table is present, thus $catalog.ns cannot be dropped.
54-
assertDropFails()
55-
sql(s"DROP TABLE $catalog.ns.table")
56-
57-
// Now that $catalog.ns is empty, it can be dropped.
58-
sql(s"DROP NAMESPACE $catalog.ns")
59-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
38+
assert(e.getMessage.contains("Database ns is not empty. One or more tables exist"))
6039
}
6140

62-
test("DropNamespace: Namespace does not exist") {
63-
// Namespace $catalog.unknown does not exist.
41+
test("DropNamespace: drop default namespace") {
6442
val message = intercept[AnalysisException] {
65-
sql(s"DROP DATABASE $catalog.unknown")
43+
sql(s"DROP NAMESPACE default")
6644
}.getMessage
67-
assert(message.contains(s"Database 'unknown' not found"))
45+
assert(message.contains("Can not drop default database"))
6846
}
6947
}
7048

sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/DropNamespaceSuite.scala

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,16 @@
1818
package org.apache.spark.sql.execution.command.v2
1919

2020
import org.apache.spark.SparkException
21-
import org.apache.spark.sql.AnalysisException
2221
import org.apache.spark.sql.execution.command
2322

2423
/**
2524
* The class contains tests for the `DROP NAMESPACE` command to check V2 table catalogs.
2625
*/
2726
class DropNamespaceSuite extends command.DropNamespaceSuiteBase with CommandSuiteBase {
28-
test("DropNamespace: drop non-empty namespace with a non-cascading mode") {
29-
sql(s"CREATE NAMESPACE $catalog.ns")
30-
sql(s"CREATE TABLE $catalog.ns.table (id bigint) $defaultUsing")
31-
checkNamespace(s"SHOW NAMESPACES IN $catalog", Seq("ns") ++ builtinTopNamespaces)
32-
33-
def assertDropFails(): Unit = {
34-
val e = intercept[SparkException] {
35-
sql(s"DROP NAMESPACE $catalog.ns")
36-
}
37-
assert(e.getMessage.contains("Cannot drop a non-empty namespace: ns"))
27+
override protected def assertDropFails(): Unit = {
28+
val e = intercept[SparkException] {
29+
sql(s"DROP NAMESPACE $catalog.ns")
3830
}
39-
40-
// $catalog.ns.table is present, thus $catalog.ns cannot be dropped.
41-
assertDropFails()
42-
sql(s"DROP TABLE $catalog.ns.table")
43-
44-
// Now that $catalog.ns is empty, it can be dropped.
45-
sql(s"DROP NAMESPACE $catalog.ns")
46-
checkNamespace(s"SHOW NAMESPACES IN $catalog", builtinTopNamespaces)
47-
}
48-
49-
test("DropNamespace: Namespace does not exist") {
50-
// Namespace $catalog.unknown does not exist.
51-
val message = intercept[AnalysisException] {
52-
sql(s"DROP DATABASE $catalog.unknown")
53-
}.getMessage
54-
assert(message.contains(s"Namespace 'unknown' not found"))
31+
assert(e.getMessage.contains("Cannot drop a non-empty namespace: ns"))
5532
}
5633
}

0 commit comments

Comments
 (0)