You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kyuubi.apache.org by bo...@apache.org on 2023/05/30 05:55:34 UTC
[kyuubi] branch master updated: [KYUUBI #4892] [AUTHZ] Make identifier part name comparision case insenstive in tests of PrivilegeBuilder
This is an automated email from the ASF dual-hosted git repository.
bowenliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kyuubi.git
The following commit(s) were added to refs/heads/master by this push:
new a1ce7fb68 [KYUUBI #4892] [AUTHZ] Make identifier part name comparision case insenstive in tests of PrivilegeBuilder
a1ce7fb68 is described below
commit a1ce7fb684f14c9a74d5cd8fddc20ffbfa9c3963
Author: liangbowen <li...@gf.com.cn>
AuthorDate: Tue May 30 13:55:18 2023 +0800
[KYUUBI #4892] [AUTHZ] Make identifier part name comparision case insenstive in tests of PrivilegeBuilder
### _Why are the changes needed?_
- the identifier parts are turned into lower case by default as `spark.sql.caseSensitive` config (including catalog, database, table, function name), in [`SessionCatalog.qualifyIdentifier`](https://github.com/apache/spark/pull/37415/files#diff-9dd0899e5406230aeff96654432da54f35255f6dc60eecb87264a5c508a8c826R161) of <https://github.com/apache/spark/pull/37415>
- fix failed ut in Authz pluin tested w/ Spark 3.4
- AlterTableRenameCommand
- AlterTableAddPartitionCommand
- AlterViewAsCommand
- AlterTableDropPartitionCommand
- RefreshFunctionCommand
- AlterTableRenamePartitionCommand
- AlterTableSetLocationCommand
- AlterTable(Un)SetPropertiesCommand
- TruncateTableCommand
- AlterTableAddColumnsCommand
- AlterTableChangeColumnCommand
- ShowCreateTableAsSerdeCommand
### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests) locally before make a pull request
Closes #4892 from bowenliang123/authz-assert-incase.
Closes #4892
8500dd8ed [liangbowen] case insenstive assertion to identifer part name
Authored-by: liangbowen <li...@gf.com.cn>
Signed-off-by: liangbowen <li...@gf.com.cn>
---
.../IcebergCatalogPrivilegesBuilderSuite.scala | 17 +-
.../spark/authz/PrivilegesBuilderSuite.scala | 257 +++++++++++----------
.../spark/authz/V2CommandsPrivilegesSuite.scala | 183 +++++++--------
.../V2JdbcTableCatalogPrivilegesBuilderSuite.scala | 27 +--
.../plugin/spark/authz/util/AssertionUtils.scala | 54 +++++
5 files changed, 298 insertions(+), 240 deletions(-)
diff --git a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/IcebergCatalogPrivilegesBuilderSuite.scala b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/IcebergCatalogPrivilegesBuilderSuite.scala
index a63174dc8..e68a8bfd0 100644
--- a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/IcebergCatalogPrivilegesBuilderSuite.scala
+++ b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/IcebergCatalogPrivilegesBuilderSuite.scala
@@ -22,6 +22,7 @@ import org.scalatest.Outcome
import org.apache.kyuubi.Utils
import org.apache.kyuubi.plugin.spark.authz.OperationType._
import org.apache.kyuubi.plugin.spark.authz.ranger.AccessType
+import org.apache.kyuubi.plugin.spark.authz.util.AssertionUtils._
import org.apache.kyuubi.plugin.spark.authz.util.AuthZUtils._
import org.apache.kyuubi.tags.IcebergTest
@@ -67,8 +68,8 @@ class IcebergCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -84,8 +85,8 @@ class IcebergCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -107,8 +108,8 @@ class IcebergCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite {
val po0 = inputs.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname === namespace)
- assert(po0.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(namespace)(po0.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po0.objectName)
assert(po0.columns === Seq("key", "value"))
checkV2TableOwner(po0)
@@ -116,8 +117,8 @@ class IcebergCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
diff --git a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilderSuite.scala b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilderSuite.scala
index 5106a53f6..b5303aa81 100644
--- a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilderSuite.scala
+++ b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilderSuite.scala
@@ -33,6 +33,7 @@ import org.apache.kyuubi.plugin.spark.authz.OperationType._
import org.apache.kyuubi.plugin.spark.authz.RangerTestNamespace._
import org.apache.kyuubi.plugin.spark.authz.RangerTestUsers._
import org.apache.kyuubi.plugin.spark.authz.ranger.AccessType
+import org.apache.kyuubi.plugin.spark.authz.util.AssertionUtils._
import org.apache.kyuubi.plugin.spark.authz.util.AuthZUtils._
abstract class PrivilegesBuilderSuite extends AnyFunSuite
@@ -123,8 +124,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === defaultDb)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(defaultDb)(po.objectName)
assert(po.columns.isEmpty)
}
@@ -148,8 +149,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
out.foreach { po =>
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(Set(oldTableShort, "efg").contains(po.objectName))
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertExistsIgnoreCase(po.objectName)(Set(oldTableShort, "efg"))
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType == AccessType.ALTER)
@@ -172,8 +173,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.isEmpty)
- assert(po.dbname === "CreateDatabaseCommand")
- assert(po.objectName === "CreateDatabaseCommand")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase(db)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -195,8 +196,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.isEmpty)
- assert(po.dbname === "DropDatabaseCommand")
- assert(po.objectName === "DropDatabaseCommand")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase(db)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.DROP)
@@ -213,8 +214,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -231,8 +232,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -264,8 +265,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase tableName.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName.split("\\.").last)(po.objectName)
assert(po.columns.isEmpty)
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -287,8 +288,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -310,8 +311,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === reusedDb)
- assert(po.objectName === reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -332,8 +333,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === reusedDb)
- assert(po.objectName === reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -351,8 +352,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po0.objectName)
if (isSparkV32OrGreater) {
// Query in AlterViewAsCommand can not be resolved before SPARK-34698
assert(po0.columns === Seq("key", "value", "pid"))
@@ -366,8 +367,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "AlterViewAsCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("AlterViewAsCommand")(po.objectName)
checkTableOwner(po)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -383,8 +384,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po0.objectName)
// ignore this check as it behaves differently across spark versions
assert(po0.columns === Seq("key"))
checkTableOwner(po0)
@@ -404,8 +405,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po0.objectName)
// ignore this check as it behaves differently across spark versions
assert(po0.columns === Seq("pid"))
checkTableOwner(po0)
@@ -425,8 +426,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po0.objectName)
// ignore this check as it behaves differently across spark versions
assert(po0.columns.isEmpty)
checkTableOwner(po0)
@@ -446,8 +447,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.DATABASE)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedDb)(po0.objectName)
// ignore this check as it behaves differently across spark versions
assert(po0.columns.isEmpty)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -464,8 +465,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedDb)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -483,8 +484,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
if (isSparkV32OrGreater) {
assert(po0.columns.head === "key")
checkTableOwner(po0)
@@ -506,8 +507,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
if (isSparkV32OrGreater) {
assert(po0.columns === Seq("key", "value"))
checkTableOwner(po0)
@@ -522,8 +523,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "CreateViewCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateViewCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -542,8 +543,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === tableName)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -590,8 +591,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.privilegeObjectType === PrivilegeObjectType.FUNCTION)
assert(po.catalog.isEmpty)
val db = if (isSparkV33OrGreater) defaultDb else null
- assert(po.dbname === db)
- assert(po.objectName === "CreateFunctionCommand")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase("CreateFunctionCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -622,8 +623,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.privilegeObjectType === PrivilegeObjectType.FUNCTION)
assert(po.catalog.isEmpty)
val db = if (isSparkV33OrGreater) defaultDb else null
- assert(po.dbname === db)
- assert(po.objectName === "DropFunctionCommand")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase("DropFunctionCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.DROP)
@@ -643,8 +644,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.privilegeObjectType === PrivilegeObjectType.FUNCTION)
assert(po.catalog.isEmpty)
val db = if (isSparkV33OrGreater) defaultDb else null
- assert(po.dbname === db)
- assert(po.objectName === "RefreshFunctionCommand")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase("RefreshFunctionCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.NONE)
@@ -659,8 +660,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -671,8 +672,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === "CreateTableLikeCommand")
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateTableLikeCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -690,8 +691,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -702,8 +703,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === "CreateTableLikeCommandWithoutDatabase")
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateTableLikeCommandWithoutDatabase")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -728,8 +729,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns === Seq("key"))
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -747,8 +748,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -767,8 +768,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedDb)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.USE)
@@ -786,8 +787,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.DATABASE)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedDb)(po0.objectName)
assert(po0.columns.isEmpty)
val accessType0 = ranger.AccessType(po0, operationType, isInput = false)
assert(accessType0 === AccessType.USE)
@@ -809,8 +810,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -825,8 +826,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -843,8 +844,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -861,8 +862,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -880,8 +881,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedPartTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedPartTableShort)(po0.objectName)
assert(po0.columns === Seq("pid"))
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -916,8 +917,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase tableName.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName.split("\\.").last)(po.objectName)
assert(po.columns.isEmpty)
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -932,8 +933,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedTableShort)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns.take(2) === Seq("key", "value"))
checkTableOwner(po)
}
@@ -1007,8 +1008,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("value", "pid", "key"),
s"$reusedPartTable both 'key', 'value' and 'pid' should be authenticated")
@@ -1034,8 +1035,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("value", "key", "pid"),
s"$reusedPartTable both 'key', 'value' and 'pid' should be authenticated")
@@ -1064,8 +1065,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("key", "value"),
s"$reusedPartTable 'key' is the join key and 'pid' is omitted")
@@ -1093,8 +1094,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("key", "value"),
s"$reusedPartTable both 'key' and 'value' should be authenticated")
@@ -1123,8 +1124,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("key", "value"),
s"$reusedPartTable both 'key' and 'value' should be authenticated")
@@ -1149,8 +1150,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("key", "value"),
s"$reusedPartTable both 'key' and 'value' should be authenticated")
@@ -1175,8 +1176,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName startsWith reusedTableShort.toLowerCase)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertStartsWithIgnoreCase(reusedTableShort)(po.objectName)
assert(
po.columns === Seq("key", "value", "pid"),
s"$reusedPartTable both 'key', 'value' and 'pid' should be authenticated")
@@ -1219,8 +1220,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === getClass.getSimpleName)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns.head === "a")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1238,8 +1239,8 @@ abstract class PrivilegesBuilderSuite extends AnyFunSuite
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName === getClass.getSimpleName)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns.head === "value")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1266,8 +1267,8 @@ class InMemoryPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === defaultDb)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(defaultDb)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.ALTER)
@@ -1283,8 +1284,8 @@ class InMemoryPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns === Seq("key", "value"))
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -1295,8 +1296,8 @@ class InMemoryPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "CreateDataSourceTableAsSelectCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateDataSourceTableAsSelectCommand")(po.objectName)
if (catalogImpl == "hive") {
assert(po.columns === Seq("key", "value"))
} else {
@@ -1326,8 +1327,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === t)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(t)(po.objectName)
assert(po.columns.head === "pid")
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1347,8 +1348,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "CreateTableCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateTableCommand")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -1366,8 +1367,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns === Seq("key", "value"))
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -1378,8 +1379,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "CreateHiveTableAsSelectCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("CreateHiveTableAsSelectCommand")(po.objectName)
assert(po.columns === Seq("key", "value"))
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -1405,7 +1406,7 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = out.head
assert(po0.actionType === PrivilegeObjectActionType.INSERT_OVERWRITE)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
assert(po0.objectName equalsIgnoreCase tableName.split("\\.").last)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
@@ -1429,7 +1430,7 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
assert(po0.objectName equalsIgnoreCase reusedPartTable.split("\\.").last)
assert(po0.columns === Seq("key", "value", "pid"))
checkTableOwner(po0)
@@ -1473,8 +1474,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns === Seq("key", "value"))
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = true)
@@ -1486,8 +1487,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.INSERT)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase defaultDb)
- assert(po.objectName equalsIgnoreCase tableName)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName)(po.objectName)
assert(po.columns.isEmpty)
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1515,8 +1516,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedTable.split("\\.").last)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po.objectName)
assert(po.columns === Seq("key", "value"))
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1528,8 +1529,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.INSERT)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase defaultDb)
- assert(po.objectName equalsIgnoreCase tableName)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName)(po.objectName)
assert(po.columns === Seq("a", "b"))
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1553,7 +1554,7 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
assert(po0.objectName equalsIgnoreCase reusedPartTable.split("\\.").last)
assert(po0.columns === Seq("key", "value", "pid"))
checkTableOwner(po0)
@@ -1578,7 +1579,7 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
assert(po0.objectName equalsIgnoreCase reusedPartTable.split("\\.").last)
assert(po0.columns === Seq("key", "value", "pid"))
checkTableOwner(po0)
@@ -1607,8 +1608,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.INSERT)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname equalsIgnoreCase defaultDb)
- assert(po.objectName equalsIgnoreCase tableName)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(tableName)(po.objectName)
assert(po.columns === Seq("a", "b"))
checkTableOwner(po)
val accessType = ranger.AccessType(po, operationType, isInput = false)
@@ -1627,8 +1628,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
val po0 = in.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.dbname === defaultDb)
- assert(po0.objectName === t)
+ assertEqualsIgnoreCase(defaultDb)(po0.dbname)
+ assertEqualsIgnoreCase(t)(po0.objectName)
assert(po0.columns.isEmpty)
checkTableOwner(po0)
val accessType0 = ranger.AccessType(po0, operationType, isInput = true)
@@ -1652,8 +1653,8 @@ class HiveCatalogPrivilegeBuilderSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
assert(po.catalog.isEmpty)
- assert(po.dbname === defaultDb)
- assert(po.objectName === "OptimizedCreateHiveTableAsSelectCommand")
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase("OptimizedCreateHiveTableAsSelectCommand")(po.objectName)
assert(po.columns === Seq("a"))
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
diff --git a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2CommandsPrivilegesSuite.scala b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2CommandsPrivilegesSuite.scala
index c97dd9e26..907b0018b 100644
--- a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2CommandsPrivilegesSuite.scala
+++ b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2CommandsPrivilegesSuite.scala
@@ -26,6 +26,7 @@ import org.apache.kyuubi.plugin.spark.authz.OperationType._
import org.apache.kyuubi.plugin.spark.authz.RangerTestNamespace._
import org.apache.kyuubi.plugin.spark.authz.ranger.AccessType
import org.apache.kyuubi.plugin.spark.authz.serde.{Database, DB_COMMAND_SPECS}
+import org.apache.kyuubi.plugin.spark.authz.util.AssertionUtils._
import org.apache.kyuubi.plugin.spark.authz.util.AuthZUtils._
abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
@@ -101,9 +102,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
assert(po.owner.isEmpty)
val accessType = AccessType(po, operationType, isInput = false)
@@ -123,9 +124,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po0 = inputs.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.catalog === None)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTableShort)
+ assert(po0.catalog.isEmpty)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.take(2) === Seq("key", "value"))
checkTableOwner(po0)
@@ -133,9 +134,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
assert(po.owner.isEmpty)
val accessType = AccessType(po, operationType, isInput = false)
@@ -156,9 +157,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
assert(po.owner.isEmpty)
val accessType = AccessType(po, operationType, isInput = false)
@@ -178,9 +179,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po0 = inputs.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.catalog === None)
- assert(po0.dbname equalsIgnoreCase reusedDb)
- assert(po0.objectName equalsIgnoreCase reusedTableShort)
+ assert(po0.catalog.isEmpty)
+ assertEqualsIgnoreCase(reusedDb)(po0.dbname)
+ assertEqualsIgnoreCase(reusedTableShort)(po0.objectName)
assert(po0.columns.take(2) === Seq("key", "value"))
checkTableOwner(po0)
@@ -188,9 +189,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
assert(po.owner.isEmpty)
val accessType = AccessType(po, operationType, isInput = false)
@@ -209,9 +210,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.INSERT)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -231,9 +232,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -251,9 +252,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -269,9 +270,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.INSERT_OVERWRITE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -292,9 +293,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.INSERT_OVERWRITE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -317,9 +318,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -339,9 +340,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -361,9 +362,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -384,9 +385,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -405,9 +406,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -427,9 +428,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -454,9 +455,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po0 = inputs.head
assert(po0.actionType === PrivilegeObjectActionType.OTHER)
assert(po0.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po0.catalog === Some(catalogV2))
- assert(po0.dbname === namespace)
- assert(po0.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po0.catalog)
+ assertEqualsIgnoreCase(namespace)(po0.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po0.objectName)
assert(po0.columns === Seq("key", "value"))
checkV2TableOwner(po0)
@@ -464,9 +465,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.UPDATE)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -487,9 +488,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogPartTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogPartTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -508,9 +509,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -525,9 +526,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = inputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === catalogTableShort)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(catalogTableShort)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = true)
@@ -552,9 +553,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -577,9 +578,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -602,9 +603,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -627,9 +628,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -652,9 +653,9 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
val po = outputs.head
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.TABLE_OR_VIEW)
- assert(po.catalog === Some(catalogV2))
- assert(po.dbname === namespace)
- assert(po.objectName === table)
+ assertEqualsIgnoreCase(Some(catalogV2))(po.catalog)
+ assertEqualsIgnoreCase(namespace)(po.dbname)
+ assertEqualsIgnoreCase(table)(po.objectName)
assert(po.columns.isEmpty)
checkV2TableOwner(po)
val accessType = AccessType(po, operationType, isInput = false)
@@ -690,8 +691,8 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.get === sparkSessionCatalogName)
- assert(po.dbname === defaultDb)
- assert(po.objectName === defaultDb)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(defaultDb)(po.objectName)
assert(po.columns.isEmpty)
}
@@ -709,8 +710,8 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.get === sparkSessionCatalogName)
- assert(po.dbname === "CreateNamespace")
- assert(po.objectName === "CreateNamespace")
+ assertEqualsIgnoreCase("CreateNamespace")(po.dbname)
+ assertEqualsIgnoreCase("CreateNamespace")(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.CREATE)
@@ -734,8 +735,8 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.get === sparkSessionCatalogName)
- assert(po.dbname === defaultDb)
- assert(po.objectName === defaultDb)
+ assertEqualsIgnoreCase(defaultDb)(po.dbname)
+ assertEqualsIgnoreCase(defaultDb)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.ALTER)
@@ -753,8 +754,8 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.get === sparkSessionCatalogName)
- assert(po.dbname equalsIgnoreCase reusedDb)
- assert(po.objectName equalsIgnoreCase reusedDb)
+ assertEqualsIgnoreCase(reusedDb)(po.dbname)
+ assertEqualsIgnoreCase(reusedDb)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.USE)
@@ -777,8 +778,8 @@ abstract class V2CommandsPrivilegesSuite extends PrivilegesBuilderSuite {
assert(po.actionType === PrivilegeObjectActionType.OTHER)
assert(po.privilegeObjectType === PrivilegeObjectType.DATABASE)
assert(po.catalog.get === sparkSessionCatalogName)
- assert(po.dbname === "DropNameSpace")
- assert(po.objectName === "DropNameSpace")
+ assertEqualsIgnoreCase(db)(po.dbname)
+ assertEqualsIgnoreCase(db)(po.objectName)
assert(po.columns.isEmpty)
val accessType = ranger.AccessType(po, operationType, isInput = false)
assert(accessType === AccessType.DROP)
diff --git a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2JdbcTableCatalogPrivilegesBuilderSuite.scala b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2JdbcTableCatalogPrivilegesBuilderSuite.scala
index 63367c91c..c7ad1356e 100644
--- a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2JdbcTableCatalogPrivilegesBuilderSuite.scala
+++ b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/V2JdbcTableCatalogPrivilegesBuilderSuite.scala
@@ -23,6 +23,7 @@ import scala.util.Try
import org.scalatest.Outcome
import org.apache.kyuubi.plugin.spark.authz.serde._
+import org.apache.kyuubi.plugin.spark.authz.util.AssertionUtils._
import org.apache.kyuubi.plugin.spark.authz.util.AuthZUtils._
class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite {
@@ -81,9 +82,9 @@ class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite
Try(table = d.extract(plan, spark).get).isSuccess
}
withClue(str) {
- assert(table.catalog === Some(catalogV2))
- assert(table.database === Some(ns1))
- assert(table.table === tbl)
+ assertEqualsIgnoreCase(Some(catalogV2))(table.catalog)
+ assertEqualsIgnoreCase(Some(ns1))(table.database)
+ assertEqualsIgnoreCase(tbl)(table.table)
assert(table.owner.isEmpty)
}
}
@@ -106,9 +107,9 @@ class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite
Try(table = d.extract(plan, spark).get).isSuccess
}
withClue(sql1) {
- assert(table.catalog === Some(catalogV2))
- assert(table.database === Some(ns1))
- assert(table.table === tbl)
+ assertEqualsIgnoreCase(Some(catalogV2))(table.catalog)
+ assertEqualsIgnoreCase(Some(ns1))(table.database)
+ assertEqualsIgnoreCase(tbl)(table.table)
assert(table.owner.isEmpty)
}
}
@@ -128,9 +129,9 @@ class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite
var table: Table = null
spec.tableDescs.find { d => Try(table = d.extract(plan, spark).get).isSuccess }
withClue(sql1) {
- assert(table.catalog === Some(catalogV2))
- assert(table.database === Some(ns1))
- assert(table.table === tbl)
+ assertEqualsIgnoreCase(Some(catalogV2))(table.catalog)
+ assertEqualsIgnoreCase(Some(ns1))(table.database)
+ assertEqualsIgnoreCase(tbl)(table.table)
assert(table.owner.isEmpty)
}
}
@@ -148,8 +149,8 @@ class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite
Try(db = d.extract(plan)).isSuccess
}
withClue(sql) {
- assert(db.catalog === Some(catalogV2))
- assert(db.database === ns1)
+ assertEqualsIgnoreCase(Some(catalogV2))(db.catalog)
+ assertEqualsIgnoreCase(ns1)(db.database)
}
}
@@ -167,8 +168,8 @@ class V2JdbcTableCatalogPrivilegesBuilderSuite extends V2CommandsPrivilegesSuite
Try(db = d.extract(plan)).isSuccess
}
withClue(sql1) {
- assert(db.catalog === Some(catalogV2))
- assert(db.database === ns1)
+ assertEqualsIgnoreCase(Some(catalogV2))(db.catalog)
+ assertEqualsIgnoreCase(ns1)(db.database)
}
}
}
diff --git a/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/util/AssertionUtils.scala b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/util/AssertionUtils.scala
new file mode 100644
index 000000000..00ecc28a0
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-authz/src/test/scala/org/apache/kyuubi/plugin/spark/authz/util/AssertionUtils.scala
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.kyuubi.plugin.spark.authz.util
+
+import java.util.Locale
+
+import org.scalactic.source
+import org.scalatest.Assertions.fail
+
+object AssertionUtils {
+
+ def assertEqualsIgnoreCase(expected: AnyRef)(actual: AnyRef)(
+ implicit pos: source.Position): Unit = {
+ val isEqualsIgnoreCase = (Option(expected), Option(actual)) match {
+ case (Some(expectedStr: String), Some(actualStr: String)) =>
+ expectedStr.equalsIgnoreCase(actualStr)
+ case (Some(Some(expectedStr: String)), Some(Some(actualStr: String))) =>
+ expectedStr.equalsIgnoreCase(actualStr)
+ case (None, None) => true
+ case _ => false
+ }
+ if (!isEqualsIgnoreCase) {
+ fail(s"Expected equaling to '$expected' ignoring case, but got '$actual'")(pos)
+ }
+ }
+
+ def assertStartsWithIgnoreCase(expectedPrefix: String)(actual: String)(
+ implicit pos: source.Position): Unit = {
+ if (!actual.toLowerCase(Locale.ROOT).startsWith(expectedPrefix.toLowerCase(Locale.ROOT))) {
+ fail(s"Expected starting with '$expectedPrefix' ignoring case, but got [$actual]")(pos)
+ }
+ }
+
+ def assertExistsIgnoreCase(expected: String)(actual: Iterable[String])(
+ implicit pos: source.Position): Unit = {
+ if (!actual.exists(_.equalsIgnoreCase(expected))) {
+ fail(s"Expected containing '$expected' ignoring case, but got [$actual]")(pos)
+ }
+ }
+}