Repository: incubator-sentry
Updated Branches:
  refs/heads/master 39d07318d -> a442fa679


SENTRY-1039: Sentry shell tests assume order of option group privileges 
(Gregory Chanan, reviewed by Lenni Kuff)


Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/a442fa67
Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/a442fa67
Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/a442fa67

Branch: refs/heads/master
Commit: a442fa679e4070dd01aef8fead08571f5482f7fc
Parents: 39d0731
Author: Gregory Chanan <[email protected]>
Authored: Sat Jan 30 19:29:29 2016 -0800
Committer: Gregory Chanan <[email protected]>
Committed: Tue Feb 2 11:17:34 2016 -0800

----------------------------------------------------------------------
 .../db/generic/tools/TestSentryShellSolr.java   | 37 +++++++++++++++++---
 .../provider/db/tools/TestSentryShellHive.java  | 37 +++++++++++++++++---
 2 files changed, 66 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/a442fa67/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/generic/tools/TestSentryShellSolr.java
----------------------------------------------------------------------
diff --git 
a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/generic/tools/TestSentryShellSolr.java
 
b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/generic/tools/TestSentryShellSolr.java
index 354cf35..6405bc9 100644
--- 
a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/generic/tools/TestSentryShellSolr.java
+++ 
b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/generic/tools/TestSentryShellSolr.java
@@ -30,6 +30,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.PrintStream;
 import java.security.PrivilegedExceptionAction;
+import java.util.Iterator;
 import java.util.Set;
 import javax.security.auth.Subject;
 
@@ -415,10 +416,16 @@ public class TestSentryShellSolr extends 
SentryGenericServiceIntegrationBase {
         // test: command option is required for shell
         args = new String[] {"-conf", confPath.getAbsolutePath() };
         sentryShell = new SentryShellSolr();
-        validateMissingParameterMsg(sentryShell, args,
-                SentryShellCommon.PREFIX_MESSAGE_MISSING_OPTION + "[-arg Add 
group to role," +
-                        " -cr Create role, -rpr Revoke privilege from role, 
-drg Delete group from role," +
-                        " -lr List role, -lp List privilege, -gpr Grant 
privilege to role, -dr Drop role]");
+        validateMissingParameterMsgsContains(sentryShell, args,
+                SentryShellCommon.PREFIX_MESSAGE_MISSING_OPTION + "[",
+                "-arg Add group to role",
+                "-cr Create role",
+                "-rpr Revoke privilege from role",
+                "-drg Delete group from role",
+                "-lr List role",
+                "-lp List privilege",
+                "-gpr Grant privilege to role",
+                "-dr Drop role");
 
         // clear the test data
         client.dropRole(requestorName, TEST_ROLE_NAME_1, SOLR);
@@ -443,4 +450,26 @@ public class TestSentryShellSolr extends 
SentryGenericServiceIntegrationBase {
     Set<String> errorMsgs = getShellResultWithOSRedirect(sentryShell, args, 
false);
     assertTrue(errorMsgs.contains(exceptedErrorMsg));
   }
+
+  private void validateMissingParameterMsgsContains(SentryShellSolr 
sentryShell, String[] args,
+      String ... expectedErrorMsgsContains) throws Exception {
+    Set<String> errorMsgs = getShellResultWithOSRedirect(sentryShell, args, 
false);
+    boolean foundAllMessages = false;
+    Iterator<String> it = errorMsgs.iterator();
+    while (it.hasNext()) {
+      String errorMessage = it.next();
+      boolean missingExpected = false;
+      for (String expectedContains : expectedErrorMsgsContains) {
+        if (!errorMessage.contains(expectedContains)) {
+          missingExpected = true;
+          break;
+        }
+      }
+      if (!missingExpected) {
+        foundAllMessages = true;
+        break;
+      }
+    }
+    assertTrue(foundAllMessages);
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/a442fa67/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/tools/TestSentryShellHive.java
----------------------------------------------------------------------
diff --git 
a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/tools/TestSentryShellHive.java
 
b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/tools/TestSentryShellHive.java
index 3907200..7883929 100644
--- 
a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/tools/TestSentryShellHive.java
+++ 
b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/tools/TestSentryShellHive.java
@@ -26,6 +26,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.PrintStream;
+import java.util.Iterator;
 import java.util.Set;
 
 import junit.framework.Assert;
@@ -552,10 +553,16 @@ public class TestSentryShellHive extends 
SentryServiceIntegrationBase {
         // test: command option is required for shell
         args = new String[] {"-conf", confPath.getAbsolutePath() };
         sentryShell = new SentryShellHive();
-        validateMissingParameterMsg(sentryShell, args,
-                SentryShellCommon.PREFIX_MESSAGE_MISSING_OPTION + "[-arg Add 
group to role," +
-                        " -cr Create role, -rpr Revoke privilege from role, 
-drg Delete group from role," +
-                        " -lr List role, -lp List privilege, -gpr Grant 
privilege to role, -dr Drop role]");
+        validateMissingParameterMsgsContains(sentryShell, args,
+                SentryShellCommon.PREFIX_MESSAGE_MISSING_OPTION + "[",
+                "-arg Add group to role",
+                "-cr Create role",
+                "-rpr Revoke privilege from role",
+                "-drg Delete group from role",
+                "-lr List role",
+                "-lp List privilege",
+                "-gpr Grant privilege to role",
+                "-dr Drop role");
 
         // clear the test data
         client.dropRole(requestorName, TEST_ROLE_NAME_1);
@@ -580,4 +587,26 @@ public class TestSentryShellHive extends 
SentryServiceIntegrationBase {
     Set<String> errorMsgs = getShellResultWithOSRedirect(sentryShell, args, 
false);
     Assert.assertTrue(errorMsgs.contains(exceptedErrorMsg));
   }
+
+  private void validateMissingParameterMsgsContains(SentryShellHive 
sentryShell, String[] args,
+      String ... expectedErrorMsgsContains) throws Exception {
+    Set<String> errorMsgs = getShellResultWithOSRedirect(sentryShell, args, 
false);
+    boolean foundAllMessages = false;
+    Iterator<String> it = errorMsgs.iterator();
+    while (it.hasNext()) {
+      String errorMessage = it.next();
+      boolean missingExpected = false;
+      for (String expectedContains : expectedErrorMsgsContains) {
+        if (!errorMessage.contains(expectedContains)) {
+          missingExpected = true;
+          break;
+        }
+      }
+      if (!missingExpected) {
+        foundAllMessages = true;
+        break;
+      }
+    }
+    assertTrue(foundAllMessages);
+  }
 }

Reply via email to