Github user spmallette commented on a diff in the pull request:

    https://github.com/apache/tinkerpop/pull/747#discussion_r150530902
  
    --- Diff: gremlin-python/src/main/jython/radish/feature_steps.py ---
    @@ -0,0 +1,231 @@
    +'''
    +Licensed to the Apache Software Foundation (ASF) under one
    +or more contributor license agreements.  See the NOTICE file
    +distributed with this work for additional information
    +regarding copyright ownership.  The ASF licenses this file
    +to you under the Apache License, Version 2.0 (the
    +"License"); you may not use this file except in compliance
    +with the License.  You may obtain a copy of the License at
    +
    +http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing,
    +software distributed under the License is distributed on an
    +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +KIND, either express or implied.  See the License for the
    +specific language governing permissions and limitations
    +under the License.
    +'''
    +
    +import json
    +import re
    +from gremlin_python.structure.graph import Graph, Path
    +from gremlin_python.process.graph_traversal import __
    +from gremlin_python.process.traversal import Cardinality, P, Scope, 
Column, Order, Direction, T, Pick, Operator
    +from radish import given, when, then
    +from hamcrest import *
    +
    +regex_and = re.compile(r"([(.,\s])and\(")
    +regex_as = re.compile(r"([(.,\s])as\(")
    +regex_from = re.compile(r"([(.,\s])from\(")
    +regex_global = re.compile(r"([(.,\s])global")
    +regex_in = re.compile(r"([(.,\s])in\(")
    +regex_is = re.compile(r"([(.,\s])is\(")
    +regex_not = re.compile(r"([(.,\s])not\(")
    +regex_or = re.compile(r"([(.,\s])or\(")
    +
    +
    +ignores = [
    +    "g.V(v1Id).out().inject(v2).values(\"name\")"  # bug in attachment 
won't connect v2
    +           ]
    +
    +
    +@given("the {graph_name:w} graph")
    +def choose_graph(step, graph_name):
    +    step.context.g = 
Graph().traversal().withRemote(step.context.remote_conn[graph_name])
    +
    +
    +@given("the graph initializer of")
    +def initialize_graph(step):
    +    traversal = _make_traversal(step.context.g, step.text, {})
    +
    +    # just be sure that the traversal returns something to prove that it 
worked to some degree. probably
    +    # is overkill to try to assert the complete success of this init 
operation. presumably the test
    +    # suite would fail elsewhere if this didn't work which would help 
identify a problem.
    +    assert len(traversal.toList()) > 0
    +
    +
    +@given("an unsupported test")
    +def unsupported_scenario(step):
    +    # this is a do nothing step as the test can't be supported for 
whatever reason
    +    return
    +
    +
    +@given("using the parameter {param_name:w} defined as 
{param:QuotedString}")
    +def add_parameter(step, param_name, param):
    +    if not hasattr(step.context, "traversal_params"):
    +        step.context.traversal_params = {}
    +
    +    step.context.traversal_params[param_name] = _convert(param, 
step.context)
    +
    +
    +@given("the traversal of")
    +def translate_traversal(step):
    +    step.context.ignore = ignores.__contains__(step.text)
    +    step.context.traversal = _make_traversal(
    +        step.context.g, step.text,
    +        step.context.traversal_params if hasattr(step.context, 
"traversal_params") else {})
    +
    +
    +@when("iterated to list")
    +def iterate_the_traversal(step):
    +    step.context.result = map(lambda x: _convert_results(x), 
step.context.traversal.toList())
    +
    +
    +@when("iterated next")
    +def next_the_traversal(step):
    +    step.context.result = map(lambda x: _convert_results(x), 
step.context.traversal.next())
    +
    +
    +@then("the result should be {characterized_as:w}")
    +def assert_result(step, characterized_as):
    +    if step.context.ignore:
    +        return
    +
    +    if characterized_as == "empty":        # no results
    +        assert_that(len(step.context.result), equal_to(0))
    +    elif characterized_as == "ordered":    # results asserted in the order 
of the data table
    +        _table_assertion(step.table, step.context.result, step.context, 
True)
    +    elif characterized_as == "unordered":  # results asserted in any order
    +        _table_assertion(step.table, step.context.result, step.context, 
False)
    +    elif characterized_as == "of":         # results may be of any of the 
specified items in the data table
    +        _any_assertion(step.table, step.context.result, step.context)
    +    else:
    +        raise ValueError("unknown data characterization of " + 
characterized_as)
    +
    +
    +@then("the graph should return {count:d} for count of 
{traversal_string:QuotedString}")
    +def assert_side_effects(step, count, traversal_string):
    +    if step.context.ignore:
    +        return
    +
    +    t = _make_traversal(step.context.g, traversal_string.replace('\\"', 
'"'),
    +                        step.context.traversal_params if 
hasattr(step.context, "traversal_params") else {})
    +    assert_that(count, equal_to(t.count().next()))
    +
    +
    +@then("the result should have a count of {count:d}")
    +def assert_count(step, count):
    +    assert_that(len(step.context.result), equal_to(count))
    +
    +
    +@then("nothing should happen because")
    +def nothing_happening(step):
    +    return
    --- End diff --
    
    I'm not terribly pleased with how I did that actually. I just wanted a way 
to mark the test as "migrated" with some comment as to why it couldn't be fully 
implemented. Perhaps that can be improved in some way....do you think it is 
important for this PR?


---

Reply via email to