TINKERPOP-1865 Run Gremlin.Net tests with GraphSON 3.0#820
Conversation
This required the rewrite of the GetEdges() function for the Gherkin test runner. Additionally, 3 tests had to be ignored: 1 has the T deserialization problem and 2 get data returned from the server that doesn't match the expected data.
|
I've rebased this branch to get the fixes for Also, I've switched to use a lambda (now that we support it :) ) to obtain all the edges for the scenario data, that way we use the same traversal as Python. It would be nice to backport the same traversal for About Regarding { '@type': 'g:Set',
'@value':
[ { '@type': 'g:Int64', '@value': 1 },
{ '@type': 'g:Int64', '@value': 1 },
{ '@type': 'g:Int64', '@value': 0 },
{ '@type': 'g:Int64', '@value': 0 },
{ '@type': 'g:Int64', '@value': 0 },
{ '@type': 'g:Int64', '@value': 2 },
{ '@type': 'g:Double', '@value': 1 },
{ '@type': 'g:Double', '@value': 1 }Which is deserialized into a @FlorianHockmann I hope you don't mind that I've directly pushed to the dev branch, feel free to revert the commits if needed. |
That lambda really makes the traversal much easier to read and understand :) For
Certainly not, thanks for helping me with this PR! |
|
I agree, we should fix Having the gherkin based tests running on GraphSON3 for Gremlin.NET is a huge improvement, VOTE +1 |
|
Ok, I created TINKERPOP-1927 to fix the scenarios. VOTE +1 |
|
VOTE +1 |
|
I think that I need this one merged to properly test out TINKERPOP-1866 as |
https://issues.apache.org/jira/browse/TINKERPOP-1865
The tests simply failed because of the traversal used in
ScenarioData.GetEdges(). I didn't dig deep into why it failed, but it had something to do with the deserialization of the keys of the received dictionary. I also couldn't get the traversal used there to work with gremlin-python, so I simply replaced it by two simpler traversals. This increases the runtime a bit as the second traversal now has to be executed for every edge, but I think that it improves the readability a lot.Unfortunately, I had to add 3 more tests to the list of ignored ones. One failed due to the missing
Tdeserializer (TINKERPOP-1866) and two failed because the data received from the server didn't match the expected data:g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX: We receive ag:Setof 8 values here, including 4 duplicates. This is deserialized to aHashSetby Gremlin.Net which means that the 8 values are reduced to 4 unique values, but the scenario expects a collection of 8 values.g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_decrX_byXkeys_incrX: Here we receive a map withg:Int32keys (at least when my understanding of theg:Maptype is correct), but the scenario expectsstringkeys.To me, this looks like mistakes in the scenarios, but it would be good if someone could verify that. I tried to modify the scenarios accordingly, but then both gremlin-python and gremlin-javascript failed for the scenario with the
g:Setcontaining duplicates. So either the deserialization ofg:Setis flawed in those two GLVs or my understanding of sets is wrong.