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:56 UTC
[11/26] tinkerpop git commit: TINKERPOP-1784 Provided translation for
python specific syntax
TINKERPOP-1784 Provided translation for python specific syntax
Included a way to specify element identifiers in feature files.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6c60bd1a
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6c60bd1a
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6c60bd1a
Branch: refs/heads/TINKERPOP-1784
Commit: 6c60bd1a7cf52c353961ec4f3cfa3e52675cf1c5
Parents: 30422e7
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Sep 27 12:16:08 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Oct 3 14:19:52 2017 -0400
----------------------------------------------------------------------
.../src/main/jython/radish/feature_steps.py | 17 +++++++++++++----
gremlin-test/features/filter/Has.feature | 13 +++++++++++++
gremlin-test/features/map/Select.feature | 2 +-
3 files changed, 27 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c60bd1a/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 8ef0f1b..989e781 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -25,6 +25,8 @@ from gremlin_python.process.traversal import P, Scope, Column
from radish import given, when, then
from hamcrest import *
+regex_as = re.compile(r"\.as\(")
+regex_in = re.compile(r"\.in\(")
@given("the {graph_name:w} graph")
def choose_graph(step, graph_name):
@@ -52,7 +54,7 @@ def translate_traversal(step):
if hasattr(step.context, "traversal_params"):
b.update(step.context.traversal_params)
- step.context.traversal = eval(step.text, b)
+ step.context.traversal = eval(__translate(step.text), b)
@when("iterated to list")
@@ -78,9 +80,11 @@ def __convert(val, ctx):
for key, value in val.items():
n[__convert(key, ctx)] = __convert(value, ctx)
return n
- elif isinstance(val, (str, unicode)) and re.match("d\[.*\]", val):
+ elif isinstance(val, (str, unicode)) and re.match("^d\[.*\]$", val):
return long(val[2:-1])
- elif isinstance(val, (str, unicode)) and re.match("v\[.*\]", val):
+ elif isinstance(val, (str, unicode)) and re.match("^v\[.*\]\.id$", val):
+ return ctx.lookup["modern"][val[2:-4]].id
+ elif isinstance(val, (str, unicode)) and re.match("^v\[.*\]$", val):
return ctx.lookup["modern"][val[2:-1]]
elif isinstance(val, unicode):
return val.encode('utf-8')
@@ -141,4 +145,9 @@ def __unordered_assertion(step):
else:
raise ValueError("unknown type of " + line[0])
- assert_that(len(results_to_test), is_(0))
\ No newline at end of file
+ assert_that(len(results_to_test), is_(0))
+
+
+def __translate(traversal):
+ replaced = regex_as.sub(".as_(", traversal)
+ return regex_in.sub(".in_(", replaced)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c60bd1a/gremlin-test/features/filter/Has.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature
index 0bb82e0..4a2e085 100644
--- a/gremlin-test/features/filter/Has.feature
+++ b/gremlin-test/features/filter/Has.feature
@@ -28,3 +28,16 @@ Feature: Step - has()
| vertex | josh |
| vertex | peter |
+ Scenario: Use hasId() with P
+ Given the modern graph
+ And using the parameter v1 is "v[marko].id"
+ And the traversal of
+ """
+ g.V().in().hasId(P.neq(v1))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | vertex | josh |
+ | vertex | josh |
+ | vertex | peter |
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c60bd1a/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index e64417a..b2d208c 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -22,7 +22,7 @@ Feature: Step - select()
And using the parameter v1 is "v[marko]"
And the traversal of
"""
- g.V(v1).as_("a").out("knows").as_("b").select("a", "b")
+ g.V(v1).as("a").out("knows").as("b").select("a", "b")
"""
When iterated to list
Then the result should be unordered