You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by du...@apache.org on 2018/03/22 18:45:15 UTC

[incubator-openwhisk-cli] branch master updated: Timestamp test improvement (#254)

This is an automated email from the ASF dual-hosted git repository.

dubeejw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-cli.git


The following commit(s) were added to refs/heads/master by this push:
     new 6e19596  Timestamp test improvement (#254)
6e19596 is described below

commit 6e1959680634a3c8729e8245455115a04e7143fc
Author: David Cariello <dr...@us.ibm.com>
AuthorDate: Thu Mar 22 13:45:12 2018 -0500

    Timestamp test improvement (#254)
    
    * improve timestamp logic in tests and improve readme accuracy
---
 README.md                                          |  4 +-
 .../test/scala/system/basic/WskBasicTests.scala    | 47 ++++++++++++----------
 .../whisk/core/cli/test/WskBasicUsageTests.scala   | 44 +++++++++-----------
 3 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/README.md b/README.md
index a80aee9..8ce6313 100644
--- a/README.md
+++ b/README.md
@@ -111,8 +111,8 @@ The build library understands most representations of most Operating Systems.
 Tests can be run using the Gradle script as well:
 
 ```
-$ ./gradlew goTests -PgoTags=unit
-$ ./gradlew goTests -PgoTags=native
+$ ./gradlew goTest -PgoTags=unit
+$ ./gradlew goTest -PgoTags=native
 ```
 
 Integration tests are best left to the Travis build as they depend on a fully
diff --git a/tests/src/test/scala/system/basic/WskBasicTests.scala b/tests/src/test/scala/system/basic/WskBasicTests.scala
index ac162d6..2759578 100644
--- a/tests/src/test/scala/system/basic/WskBasicTests.scala
+++ b/tests/src/test/scala/system/basic/WskBasicTests.scala
@@ -39,6 +39,14 @@ import spray.json.pimpAny
 
 import whisk.http.Messages
 
+object WskCliTestHelpers {
+  /**
+    * Append the current timestamp in ms
+    */
+  def withTimestamp(text: String) = s"${text}-${System.currentTimeMillis}"
+
+}
+
 @RunWith(classOf[JUnitRunner])
 class WskBasicTests extends TestHelpers with WskTestHelpers {
 
@@ -46,11 +54,6 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
   val wsk = new Wsk
   val defaultAction = Some(TestCLIUtils.getTestActionFilename("hello.js"))
 
-  /**
-   * Append the current timestamp in ms
-   */
-  def withTimestamp(text: String) = s"${text}-${System.currentTimeMillis}"
-
   behavior of "Wsk CLI"
 
   it should "reject creating duplicate entity" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
@@ -470,9 +473,9 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
   behavior of "Wsk Trigger CLI"
 
   it should "create, update, get, fire and list trigger" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
-    val ruleName = withTimestamp("r1toa1")
-    val triggerName = withTimestamp("t1tor1")
-    val actionName = withTimestamp("a1")
+    val ruleName = WskCliTestHelpers.withTimestamp("r1toa1")
+    val triggerName = WskCliTestHelpers.withTimestamp("t1tor1")
+    val actionName = WskCliTestHelpers.withTimestamp("a1")
     val params = Map("a" -> "A".toJson)
     val ns = wsk.namespace.whois()
 
@@ -572,9 +575,9 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
   }
 
   it should "create, and fire a trigger using a parameter file" in withAssetCleaner(wskprops) {
-    val ruleName = withTimestamp("r1toa1")
-    val triggerName = withTimestamp("paramFileTrigger")
-    val actionName = withTimestamp("a1")
+    val ruleName = WskCliTestHelpers.withTimestamp("r1toa1")
+    val triggerName = WskCliTestHelpers.withTimestamp("paramFileTrigger")
+    val actionName = WskCliTestHelpers.withTimestamp("a1")
     val argInput = Some(TestUtils.getTestActionFilename("validInput2.json"))
 
     (wp, assetHelper) =>
@@ -640,9 +643,9 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
   }
 
   it should "create, and fire a trigger to ensure result is empty" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
-    val ruleName = withTimestamp("r1toa1")
-    val triggerName = withTimestamp("emptyResultTrigger")
-    val actionName = withTimestamp("a1")
+    val ruleName = WskCliTestHelpers.withTimestamp("r1toa1")
+    val triggerName = WskCliTestHelpers.withTimestamp("emptyResultTrigger")
+    val actionName = WskCliTestHelpers.withTimestamp("a1")
 
     assetHelper.withCleaner(wsk.trigger, triggerName) { (trigger, _) =>
       trigger.create(triggerName)
@@ -694,11 +697,11 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
 
   it should "create and fire a trigger with a rule whose action has been deleted" in withAssetCleaner(wskprops) {
     (wp, assetHelper) =>
-      val ruleName1 = withTimestamp("r1toa1")
-      val ruleName2 = withTimestamp("r2toa2")
-      val triggerName = withTimestamp("t1tor1r2")
-      val actionName1 = withTimestamp("a1")
-      val actionName2 = withTimestamp("a2")
+      val ruleName1 = WskCliTestHelpers.withTimestamp("r1toa1")
+      val ruleName2 = WskCliTestHelpers.withTimestamp("r2toa2")
+      val triggerName = WskCliTestHelpers.withTimestamp("t1tor1r2")
+      val actionName1 = WskCliTestHelpers.withTimestamp("a1")
+      val actionName2 = WskCliTestHelpers.withTimestamp("a2")
       val ns = wsk.namespace.whois()
 
       assetHelper.withCleaner(wsk.trigger, triggerName) { (trigger, _) =>
@@ -926,9 +929,9 @@ class WskBasicTests extends TestHelpers with WskTestHelpers {
 
   it should "create a trigger, and fire a trigger to get its individual fields from an activation" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
-    val ruleName = withTimestamp("r1toa1")
-    val triggerName = withTimestamp("activationFields")
-    val actionName = withTimestamp("a1")
+    val ruleName = WskCliTestHelpers.withTimestamp("r1toa1")
+    val triggerName = WskCliTestHelpers.withTimestamp("activationFields")
+    val actionName = WskCliTestHelpers.withTimestamp("a1")
 
     assetHelper.withCleaner(wsk.trigger, triggerName) { (trigger, _) =>
       trigger.create(triggerName)
diff --git a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
index d0b31b3..4d163f5 100644
--- a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
+++ b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
@@ -27,6 +27,7 @@ import scala.language.postfixOps
 import scala.concurrent.duration.Duration
 import scala.concurrent.duration.DurationInt
 import scala.util.Random
+import system.basic.WskCliTestHelpers
 import org.junit.runner.RunWith
 import org.scalatest.junit.JUnitRunner
 import common.TestHelpers
@@ -58,11 +59,6 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   val defaultAction = Some(TestCLIUtils.getTestActionFilename("hello.js"))
   val usrAgentHeaderRegEx = """\bUser-Agent\b": \[\s+"OpenWhisk\-CLI/1.\d+.*"""
 
-  /**
-    * Append the current timestamp in ms
-    */
-  def withTimestamp(text: String) = s"$text-${System.currentTimeMillis}"
-
   behavior of "Wsk CLI usage"
 
   it should "show help and usage info" in {
@@ -97,10 +93,10 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   it should "allow a 3 part Fully Qualified Name (FQN) without a leading '/'" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
     val guestNamespace = wsk.namespace.whois()
-    val packageName = "packageName3ptFQN"
-    val actionName = "actionName3ptFQN"
-    val triggerName = "triggerName3ptFQN"
-    val ruleName = "ruleName3ptFQN"
+    val packageName = WskCliTestHelpers.withTimestamp("packageName3ptFQN")
+    val actionName = WskCliTestHelpers.withTimestamp("actionName3ptFQN")
+    val triggerName = WskCliTestHelpers.withTimestamp("triggerName3ptFQN")
+    val ruleName = WskCliTestHelpers.withTimestamp("ruleName3ptFQN")
     val fullQualifiedName = s"${guestNamespace}/${packageName}/${actionName}"
     // Used for action and rule creation below
     assetHelper.withCleaner(wsk.pkg, packageName) { (pkg, _) =>
@@ -769,7 +765,7 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
 
   it should "reject action create and update when --web-secure used on a non-web action" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
-    val name = withTimestamp("nonwebaction")
+    val name = WskCliTestHelpers.withTimestamp("nonwebaction")
     val file = Some(TestCLIUtils.getTestActionFilename("echo.js"))
     val errorMsg =
       s"The --web-secure option is only valid when the --web option is enabled."
@@ -808,7 +804,7 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
 
   it should "generate a require-whisk-annotation --web-secure used on a web action" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
-    val name = withTimestamp("webaction")
+    val name = WskCliTestHelpers.withTimestamp("webaction")
     val file = Some(TestCLIUtils.getTestActionFilename("echo.js"))
     val secretStr = "my-secret"
 
@@ -886,7 +882,7 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
 
   it should "remove existing require-whisk-annotation when --web-secure is false" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
-    val name = withTimestamp("webaction")
+    val name = WskCliTestHelpers.withTimestamp("webaction")
     val file = Some(TestCLIUtils.getTestActionFilename("echo.js"))
     val secretStr = "my-secret"
 
@@ -1018,11 +1014,11 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
 
   it should "get an action URL" in withAssetCleaner(wskprops) {
     (wp, assetHelper) =>
-      val actionName = "action name@_-."
-      val packageName = "package name@_-."
+      val actionName = WskCliTestHelpers.withTimestamp("action name@_-.")
+      val packageName = WskCliTestHelpers.withTimestamp("package name@_-.")
       val defaultPackageName = "default"
-      val webActionName = "web action name@_-."
-      val nonExistentActionName = "non-existence action"
+      val webActionName = WskCliTestHelpers.withTimestamp("web action name@_-.")
+      val nonExistentActionName = WskCliTestHelpers.withTimestamp("non-existence action")
       val packagedAction = s"$packageName/$actionName"
       val packagedWebAction = s"$packageName/$webActionName"
       val namespace = wsk.namespace.whois()
@@ -1666,7 +1662,7 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
 
   it should "invoke a feed action with the correct lifecyle event when creating, retrieving and deleting a feed trigger" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
-    val actionName = "echo"
+    val actionName = WskCliTestHelpers.withTimestamp("echo")
     val triggerName = "feedTest"
 
     assetHelper.withCleaner(wsk.action, actionName) { (action, _) =>
@@ -1798,8 +1794,8 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   it should "create, and list a rule with a long name" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
     val ruleName = "x" * 70
-    val triggerName = "listRulesTrigger"
-    val actionName = "listRulesAction";
+    val triggerName = WskCliTestHelpers.withTimestamp("listRulesTrigger")
+    val actionName = WskCliTestHelpers.withTimestamp("listRulesAction");
     assetHelper.withCleaner(wsk.trigger, triggerName) { (trigger, name) =>
       trigger.create(name)
     }
@@ -1817,7 +1813,7 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   it should "return a list of alphabetized actions" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
     // Declare 4 actions, create them out of alphabetical order
-    val actionName = "actionAlphaTest"
+    val actionName = WskCliTestHelpers.withTimestamp("actionAlphaTest")
     for (i <- 1 to 3) {
       val name = s"$actionName$i"
       assetHelper.withCleaner(wsk.action, name) { (action, name) =>
@@ -1844,8 +1840,8 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   it should "return an alphabetized list with default package actions on top" in withAssetCleaner(
     wskprops) { (wp, assetHelper) =>
     // Declare 4 actions, create them out of alphabetical order
-    val actionName = "actionPackageAlphaTest"
-    val packageName = "packageAlphaTest"
+    val actionName = WskCliTestHelpers.withTimestamp("actionPackageAlphaTest")
+    val packageName = WskCliTestHelpers.withTimestamp("packageAlphaTest")
     assetHelper.withCleaner(wsk.action, actionName) { (action, actionName) =>
       action.create(actionName, defaultAction)
     }
@@ -1937,8 +1933,8 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   it should "return a list of alphabetized rules" in withAssetCleaner(wskprops) {
     (wp, assetHelper) =>
       // Declare a trigger and an action for the purposes of creating rules
-      val triggerName = "listRulesTrigger"
-      val actionName = "listRulesAction"
+      val triggerName = WskCliTestHelpers.withTimestamp("listRulesTrigger")
+      val actionName = WskCliTestHelpers.withTimestamp("listRulesAction")
 
       assetHelper.withCleaner(wsk.trigger, triggerName) { (trigger, name) =>
         trigger.create(name)

-- 
To stop receiving notification emails like this one, please contact
dubeejw@apache.org.