You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2017/10/03 18:20:59 UTC

[14/26] tinkerpop git commit: TINKERPOP-1784 Minor refactoring of python gherkin steps

TINKERPOP-1784 Minor refactoring of python gherkin steps


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

Branch: refs/heads/TINKERPOP-1784
Commit: 959656f400b1963326f05de7d664568e2a7f4e9f
Parents: 448d81e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 22 13:49:50 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Oct 3 14:19:52 2017 -0400

----------------------------------------------------------------------
 .../src/main/jython/radish/feature_steps.py     | 130 ++++++++++---------
 1 file changed, 69 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/959656f4/gremlin-python/src/main/jython/radish/feature_steps.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py
index f67a4c2..19da3ec 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -28,17 +28,6 @@ from hamcrest import *
 out = __.out
 
 
-def convert(m, ctx):
-    n = {}
-    for key, value in m.items():
-        if isinstance(key, str) and re.match("v\[.*\]", key):
-            n[ctx.lookup["modern"][key[2:-1]]] = value
-        else:
-            n[key] = value
-
-    return n
-
-
 @given("the {graph_name:w} graph")
 def choose_graph(step, graph_name):
     # only have modern atm but graphName would be used to select the right one
@@ -59,62 +48,81 @@ def iterate_the_traversal(step):
     step.context.result = step.context.traversal.toList()
 
 
+def __convert(m, ctx):
+    n = {}
+    for key, value in m.items():
+        if isinstance(key, str) and re.match("v\[.*\]", key):
+            n[ctx.lookup["modern"][key[2:-1]]] = value
+        else:
+            n[key] = value
+
+    return n
+
+
+def __ordered_assertion(step):
+    data = step.table
+
+    # results from traversal should have the same number of entries as the feature data table
+    assert_that(len(step.context.result), equal_to(len(data)))
+
+    # assert the results by type where the first column will hold the type and the second column
+    # the data to assert. the contents of the second column will be dependent on the type specified
+    # in the first column
+    for ix, line in enumerate(data):
+        if line[0] == "numeric":
+            assert_that(long(step.context.result[ix]), equal_to(long(line[1])))
+        elif line[0] == "string":
+            assert_that(str(step.context.result[ix]), equal_to(str(line[1])))
+        elif line[0] == "vertex":
+            assert_that(step.context.result[ix].label, equal_to(line[1]))
+        elif line[0] == "map":
+            assert_that(__convert(step.context.result[ix], step.context), json.loads(line[1]))
+        else:
+            raise ValueError("unknown type of " + line[0])
+
+
+def __unordered_assertion(step):
+    data = step.table
+
+    # results from traversal should have the same number of entries as the feature data table
+    assert_that(len(step.context.result), equal_to(len(data)))
+
+    results_to_test = list(step.context.result)
+
+    # finds a match in the results for each line of data to assert and then removes that item
+    # from the list - in the end there should be no items left over and each will have been asserted
+    for line in data:
+        if line[0] == "numeric":
+            val = long(line[1])
+            assert_that(val, is_in(list(map(long, results_to_test))))
+            results_to_test.remove(val)
+        elif line[0] == "string":
+            val = str(line[1])
+            assert_that(val, is_in(list(map(str, results_to_test))))
+            results_to_test.remove(val)
+        elif line[0] == "vertex":
+            val = str(line[1])
+            v = step.context.lookup["modern"][val]
+            assert_that(v, is_in(results_to_test))
+            results_to_test.remove(v)
+        elif line[0] == "map":
+            val = __convert(json.load(line[1]), step.context)
+            assert_that(val, is_in(results_to_test))
+            results_to_test.remove(val)
+        else:
+            raise ValueError("unknown type of " + line[0])
+
+    assert_that(len(results_to_test), is_(0))
+
+    
 @then("the result should be {characterized_as:w}")
 def assert_result(step, characterized_as):
     if characterized_as == "empty":
         assert_that(len(step.context.result), equal_to(0))
     elif characterized_as == "ordered":
-        data = step.table
-    
-        # results from traversal should have the same number of entries as the feature data table
-        assert_that(len(step.context.result), equal_to(len(data)))
-
-        # assert the results by type where the first column will hold the type and the second column
-        # the data to assert. the contents of the second column will be dependent on the type specified
-        # in the first column
-        for ix, line in enumerate(data):
-            if line[0] == "numeric":
-                assert_that(long(step.context.result[ix]), equal_to(long(line[1])))
-            elif line[0] == "string":
-                assert_that(str(step.context.result[ix]), equal_to(str(line[1])))
-            elif line[0] == "vertex":
-                assert_that(step.context.result[ix].label, equal_to(line[1]))
-            elif line[0] == "map":
-                assert_that(convert(step.context.result[ix], step.context), json.loads(line[1]))
-            else:
-                raise ValueError("unknown type of " + line[0])
+        __ordered_assertion(step)
     elif characterized_as == "unordered":
-        data = step.table
-
-        # results from traversal should have the same number of entries as the feature data table
-        assert_that(len(step.context.result), equal_to(len(data)))
-
-        results_to_test = list(step.context.result)
-
-        # finds a match in the results for each line of data to assert and then removes that item
-        # from the list - in the end there should be no items left over and each will have been asserted
-        for line in data:
-            if line[0] == "numeric":
-                val = long(line[1])
-                assert_that(val, is_in(list(map(long, results_to_test))))
-                results_to_test.remove(val)
-            elif line[0] == "string":
-                val = str(line[1])
-                assert_that(val, is_in(list(map(str, results_to_test))))
-                results_to_test.remove(val)
-            elif line[0] == "vertex":
-                val = str(line[1])
-                v = step.context.lookup["modern"][val]
-                assert_that(v, is_in(results_to_test))
-                results_to_test.remove(v)
-            elif line[0] == "map":
-                val = convert(json.load(line[1]), step.context)
-                assert_that(val, is_in(results_to_test))
-                results_to_test.remove(val)
-            else:
-                raise ValueError("unknown type of " + line[0])
-
-        assert_that(len(results_to_test), is_(0))
+        __unordered_assertion(step)
     else:
         raise ValueError("unknown data characterization of " + characterized_as)