[ 
https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16249569#comment-16249569
 ] 

ASF GitHub Bot commented on TINKERPOP-1784:
-------------------------------------------

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

    https://github.com/apache/tinkerpop/pull/747#discussion_r150542730
  
    --- 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 think including steps on the feature to denote that can't be migrated is 
OK and the format is OK. I was commenting on the way python feature handles it, 
but it's not directly related to the test suite.
    I agree that its not important for this patch.


> Gremlin Language Test Suite
> ---------------------------
>
>                 Key: TINKERPOP-1784
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1784
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: test-suite
>    Affects Versions: 3.2.6
>            Reporter: stephen mallette
>            Assignee: stephen mallette
>
> Provide for a more language agnostic test framework for the Gremlin Language 
> so that we can properly test GLVs. The current test suite is completely tied 
> to the JVM.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to