TINKERPOP-1879 More consistently handle the short options with "="


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

Branch: refs/heads/TINKERPOP-1857
Commit: b251d54460f4d65a48503eb8c446fbd25bc3fcd9
Parents: 352d06e
Author: Stephen Mallette <[email protected]>
Authored: Tue Jan 30 16:04:28 2018 -0500
Committer: Stephen Mallette <[email protected]>
Committed: Tue Jan 30 16:04:28 2018 -0500

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/console/Console.groovy    | 11 ++++++++---
 gremlin-console/src/test/python/tests/test_console.py  | 13 +++++--------
 2 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b251d544/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
----------------------------------------------------------------------
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
index fe9e613..4e54a42 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
@@ -526,8 +526,13 @@ class Console {
      * to split the flag from the argument so that it can be evaluated in a 
consistent way by {@code parseArgs()}.
      */
     private static def normalizeArgs(final List<String> options, final 
String[] args) {
-        return args.collect{ arg -> options.any{
-            arg.startsWith(it) } ? arg.split("=", 2) : arg
-        }.flatten().toArray()
+        return args.collect{ arg ->
+                // arguments that match -i/-e options should be normalized 
where long forms need to be split on "="
+                // and short forms need to have the "=" included with the 
argument
+                if (options.any{ arg.startsWith(it) }) {
+                    return arg.matches("^-[e,i]=.*") ? [arg.substring(0, 2), 
arg.substring(2)] : arg.split("=", 2)
+                } 
+                return arg
+            }.flatten().toArray()
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b251d544/gremlin-console/src/test/python/tests/test_console.py
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/python/tests/test_console.py 
b/gremlin-console/src/test/python/tests/test_console.py
index 88c1a05..3e22929 100644
--- a/gremlin-console/src/test/python/tests/test_console.py
+++ b/gremlin-console/src/test/python/tests/test_console.py
@@ -41,14 +41,6 @@ class TestConsole(object):
         TestConsole._expect_prompt(child)
         TestConsole._close(child)
 
-    def test_just_dash_i_with_equals(self):
-        child = pexpect.spawn(TestConsole.gremlinsh + "-i=x.script")
-        TestConsole._expect_gremlin_header(child)
-        TestConsole._send(child, "x")
-        child.expect("==>2\r\n")
-        TestConsole._expect_prompt(child)
-        TestConsole._close(child)
-
     def test_just_dash_dash_interactive(self):
         child = pexpect.spawn(TestConsole.gremlinsh + "--interactive x.script")
         TestConsole._expect_gremlin_header(child)
@@ -128,6 +120,11 @@ class TestConsole(object):
         child.expect("2\r\n")
         TestConsole._close(child)
 
+    def test_just_dash_e_file_not_found(self):
+        child = pexpect.spawn(TestConsole.gremlinsh + "-e=x-printed.script")
+        child.expect("Gremlin file not found at \[=x-printed.script\]\.\r\n")
+        child.expect(pexpect.EOF)
+
     def test_just_dash_dash_execute(self):
         child = pexpect.spawn(TestConsole.gremlinsh + "--execute 
x-printed.script")
         child.expect("2\r\n")

Reply via email to