Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TINKERPOP-1784 GLV Test Framework #747

Merged
merged 87 commits into from Nov 22, 2017
Merged

TINKERPOP-1784 GLV Test Framework #747

merged 87 commits into from Nov 22, 2017

Conversation

spmallette
Copy link
Contributor

https://issues.apache.org/jira/browse/TINKERPOP-1784

This PR is for the GLV Test Framework. It contains an implementation for gremlin-python. It is not a complete porting of all the process test suite, but does provide coverage for almost all steps. I think I've built enough here to provide enough for evaluation of the framework itself - my intention is to backfill tests after this merges. I do think I have enough tests here to yield confidence in GLVs that implement it, thus allowing baseline for official release.

All tests pass with docker/build.sh -t -n -i

VOTE +1

Copy link
Contributor

@jorgebay jorgebay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!
The terrain and steps definitions are clear and concise, I've liked the client-side generation of the python traversal.
Integration tests pass with docker.

I've added included some minor nits from the review.

@@ -36,15 +36,27 @@ namespace Gremlin.Net.Driver.Remote
public class DriverRemoteConnection : IRemoteConnection, IDisposable
{
private readonly IGremlinClient _client;
private readonly string _traversalSource;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C# skills :)

failonerror="true">
<env key="PYTHONPATH" value=""/>
<arg line="-e -t -b ${project.build.directory}/python2/radish ${project.basedir}/../gremlin-test/features/"/> <!-- -no-line-jump -->
</exec>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: undesired additional spaces after exec close tag.


@then("nothing should happen because")
def nothing_happening(step):
return
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be marked as ignore instead of success?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.


@Test
@Ignore("As it stands we won't have all of these tests migrated initially so there is no point to running this in full - it can be flipped on later")
public void shouldImplementAllProcessTestsAsFeatures() throws Exception {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good way to verify how much of the tests have been migrated, but as it should be run once / few times, maybe a script / gist outside of the repo would be better, to avoid maintaining this source code in the future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As long as we continue to rely on the java process test suite I think it should run on every build. I can see people adding tests to the process suite but not to the GLV suite. Better to just catch it on mvn clean install than on a periodic test run to ensure the suites stay in sync. It's not a lengthy test I don't think....pretty fast to do the comparisons.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sgtm

{
_client = client ?? throw new ArgumentNullException(nameof(client));
_traversalSource = traversalSource;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could add null validation in the same form:

_traversalSource = traversalSource ?? throw new ArgumentNullException(nameof(traversalSource));


b.update(params)

# print _translate(step.text + " - " + str(b))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit picking: remove commented line

@spmallette
Copy link
Contributor Author

@jorgebay fixed all the nits - thanks.

@jorgebay
Copy link
Contributor

Fixes look good to me!
I'm running integration tests locally on docker and I'll come back to give my plus one.

@jorgebay
Copy link
Contributor

docker/build.sh -t -n -i succeeds and tests pass.

VOTE: +1

@jorgebay
Copy link
Contributor

hm... with the new server start scripts, when running from within a directory like:

cd gremlin-dotnet
mvn clean install -P gremlin-dotnet

I get the following issues:

[INFO] Using Groovy 2.4.11 to perform execute.
[INFO] Starting Gremlin Server instances for native testing of Apache TinkerPop :: Gremlin.Net - Tests
[INFO] Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
[INFO] Graph [graph] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [classic] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [modern] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [crew] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [grateful] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
[INFO] Loaded gremlin-groovy ScriptEngine
[INFO] Initialized gremlin-groovy ScriptEngine with /Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/generate-all.groovy
[INFO] Initialized GremlinExecutor and preparing GremlinScriptEngines instances.
[INFO] Initialized gremlin-groovy GremlinScriptEngine and registered metrics
[INFO] A GraphTraversalSource is now bound to [gclassic] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [gcrew] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [ggraph] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [gmodern] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] Adding the standard OpProcessor.
[INFO] Adding the control OpProcessor.
[INFO] Adding the session OpProcessor.
[INFO] Adding the traversal OpProcessor.
[INFO] Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
[INFO] Executing start up LifeCycleHook
[INFO] Configured application/vnd.gremlin-v1.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
[WARNING] The org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0 serialization class is deprecated.
[INFO] Configured application/vnd.gremlin-v1.0+gryo-lite with org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0
[INFO] Configured application/vnd.gremlin-v1.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
[INFO] Configured application/vnd.gremlin-v1.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0
[INFO] Configured application/vnd.gremlin-v2.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
[INFO] Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0
[INFO] Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and boss thread pool of 1.
[INFO] Channel started at port 45940.
[INFO] Gremlin Server with no authentication started on port 45940
[WARNING] Graph [graph] configured at [conf/tinkergraph-empty.properties] could not be instantiated and will not be available in Gremlin Server.  GraphFactory message: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
java.lang.IllegalArgumentException: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
	at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.getConfiguration(GraphFactory.java:121)
	at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:104)
	at  ...
[WARNING] Graph [classic] configured at [conf/tinkergraph-empty.properties] could not be instantiated and will not be available in Gremlin Server.  GraphFactory message: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
java.lang.IllegalArgumentException: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
	at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.getConfiguration(GraphFactory.java:121)
	at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:104)
	at ...

Also, a different failure for grateful.io(gryo()).readGraph('data/grateful-dead.kryo'):

...
[INFO] A GraphTraversalSource is now bound to [gmodern] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] Adding the standard OpProcessor.
[INFO] Adding the control OpProcessor.
[INFO] Adding the session OpProcessor.
[INFO] Adding the traversal OpProcessor.
[INFO] Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
[INFO] Executing start up LifeCycleHook
[ERROR] Gremlin Server Error
java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy32.onStartUp(Unknown Source)
	at org.apache.tinkerpop.gremlin.server.GremlinServer.lambda$start$52(GremlinServer.java:172)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.apache.tinkerpop.gremlin.server.GremlinServer.start(GremlinServer.java:169)
	at org.apache.tinkerpop.gremlin.server.GremlinServer$start.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
	at test-server-start.run(test-server-start.groovy:41)
	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:632)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.codehaus.gmavenplus.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:275)
	at org.codehaus.gmavenplus.mojo.ExecuteMojo.executeScripts(ExecuteMojo.java:213)
	at org.codehaus.gmavenplus.mojo.ExecuteMojo.doExecute(ExecuteMojo.java:126)
	at org.codehaus.gmavenplus.mojo.ExecuteMojo.execute(ExecuteMojo.java:86)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.io.FileNotFoundException: data/grateful-dead.kryo (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)

Running integration tests within a directory used to work and allowed fast builds... can we look into making it work?

@spmallette
Copy link
Contributor Author

I think that there are a lot of path issues when building from outside of the root directory - gremlin-dotnet is not the only one. i typically just do this:

mvn clean install -pl :gremlin-dotnet-source,:gremlin-dotnet-tests -DskipIntegrationTests=false

If you think it's important to fix the path problems you get when running from a sub-directory, I think it's best to create an issue in JIRA and I can come back to it later.

@jorgebay
Copy link
Contributor

Ah, I see its possible to run integration test using:

mvn clean install -pl :gremlin-dotnet-source,:gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false

I don't think its necessary to allow builds from a subdir, so don't mind... as there is a way to build the projects themselves with a profile that includes integration tests

Thanks, my maven-fu is not strong at all.

@jorgebay
Copy link
Contributor

I'm getting a path related issue on Gremlin.Net - Test module, while executing:

mvn clean install -pl :gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false

From the root directory, I get:

[INFO] Starting Gremlin Server instances for native testing of Apache TinkerPop :: Gremlin.Net - Tests
[INFO] Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
[INFO] Graph [graph] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [classic] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [modern] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [crew] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Graph [grateful] was successfully configured via [/Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/tinkergraph-empty.properties].
[INFO] Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
[INFO] Loaded gremlin-groovy ScriptEngine
[INFO] Initialized gremlin-groovy ScriptEngine with /Users/jorge/workspace/tinkerpop/gremlin-server/src/test/scripts/generate-all.groovy
[INFO] Initialized GremlinExecutor and preparing GremlinScriptEngines instances.
[INFO] Initialized gremlin-groovy GremlinScriptEngine and registered metrics
[INFO] A GraphTraversalSource is now bound to [ggraph] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [gmodern] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [gclassic] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [gcrew] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] A GraphTraversalSource is now bound to [ggrateful] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
[INFO] Adding the standard OpProcessor.
[INFO] Adding the control OpProcessor.
[INFO] Adding the session OpProcessor.
[INFO] Adding the traversal OpProcessor.
[INFO] Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
[INFO] Executing start up LifeCycleHook
[INFO] Configured application/vnd.gremlin-v1.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
[WARNING] The org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0 serialization class is deprecated.
[INFO] Configured application/vnd.gremlin-v1.0+gryo-lite with org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0
[INFO] Configured application/vnd.gremlin-v1.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
[INFO] Configured application/vnd.gremlin-v1.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0
[INFO] Configured application/vnd.gremlin-v2.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
[INFO] Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0
[INFO] Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and boss thread pool of 1.
[INFO] Channel started at port 45940.
[INFO] Gremlin Server with no authentication started on port 45940
[WARNING] Graph [graph] configured at [conf/tinkergraph-empty.properties] could not be instantiated and will not be available in Gremlin Server.  GraphFactory message: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
java.lang.IllegalArgumentException: The location configuration must resolve to a file and [conf/tinkergraph-empty.properties] does not
	at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.getConfiguration(GraphFactory.java:121)

The same issue appears for classic, modern, crew, ... graphs.

@spmallette
Copy link
Contributor Author

This is strange. That command works for me. I'm not sure what could be wrong.....

When iterated to list
Then the result should be unordered
| result |
| m[{"name":["marko"], "age":[29]}] |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should specify the expected numeric type when describing map results because it has different meaning across different scenarios, here is an int32, below it's also a int64 (ie: groupCount()) and also a double.
The json literal for numbers could be reserved for double (JS Number underlying representation) and the rest we could use something like:

  • m[{"age":"d[29]"}], value is an int32.
  • m[{"age":"d[29L]"}], value is an int64.
  • m[{"age":29}], value is an double.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sigh - stupid numbers. i wondered when that would be a problem. obviously the problem is sooner than later. I think will implement in a manner similar to how i designated identifiers on vertices, by adding a "modulator" after the "d" specification. More specifically:

  • d[29].i = int32
  • d[29].l = int64
  • d[29].f = float
  • d[29].d = double

When iterated to list
Then the result should be unordered
| result |
| d[3.5].d |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The type of the result is BigDecimal

gremlin> g.withSack(0.0).V().outE().sack(Operator.sum).by("weight").inV().sack().sum().next().getClass()
==>class java.math.BigDecimal

We should introduce another suffix for decimals.

When iterated to list
Then the result should be unordered
| result |
| m[{"ripple":"d[1.0]".d,"lop":"d[0.3333333333333333].d"}] |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "d[1.0]".d, use "d[1.0].d" instead.

When iterated to list
Then the result should be unordered
| result |
| m[{"software":"d[0].i", "person":"d[3.5].d}] |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo "d[3.5].d"

When iterated to list
Then the result should be unordered
| result |
| m[{"ripple":"d[1.0].d","lop":"d[0.2]d"}] |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: should be "d[0.2].d"

@spmallette
Copy link
Contributor Author

yeah - i'm just realizing how i flubbed a bunch of things on the last commit. i was so focused on your .net problems i only ran tests for .net 😞

@robertdale
Copy link
Member

@jorgebay On which OS do you get the test errors?

@jorgebay
Copy link
Contributor

@robertdale thanks for looking into it.

I'm running mvn clean install -DskipTests followed by a mvn clean install -pl :gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false on a macOS Sierra.

This is the output for mvn clean install -pl :gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false: https://gist.github.com/jorgebay/834b28c49290038bf59df11a32ec61ad

When iterated to list
Then the result should be unordered
| result |
| d[123].l |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The expected value is an int.

When iterated to list
Then the result should be unordered
| result |
| d[2.0].d |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two are also big decimal...

@dkuppitz
Copy link
Contributor

VOTE: +1

… suite

Uses Gherkin to write test specifications that will be implemented by the various GLVs. Provided a basic implementation for gremlin-python.
This matches he pattern of the java test suite.
Developed methods for vertices/maps and a way to assert unordered results.
… vertex object

This might be the pattern to use across the board. We'll see if there is a better idea floating about though so may not be final.
Included infrastructure for validating maps and refactored other related code.
This is not complete, but it is enough for now.
Included Cardinality in imports for test logic
Tests were failing as a result of the change to using the mix server configuration that had all the graphs. On the way to dealing with that, I noticed the driver didn't seem to have aliasing capability which prevented it from choosing the correct graph traversal source on the server. For some reason, asserting longs on ids seemed to be a problem as well after this change and I'm pretty sure it has something to do with the configuration of the TinkerGraph in this new mixed mode configuration and not something in serialization.
Ensures that a RemoteConnection in .NET is properly initialized.
@jorgebay
Copy link
Contributor

I've rebased this on top of tp32 (after #752 was merged) on my private fork and the issue I've mentioned earlier persists: https://travis-ci.org/jorgebay/tinkerpop/jobs/305703717#L7380 (Ubuntu).

I'm changing my VOTE to -1 until this is resolved.

@spmallette
Copy link
Contributor Author

Interesting. Those errors don't seem to affect the build though - it still passes. I guess it's because we don't run any tests against those particular graphs on the "secure" server? or is it failing and i'm misinterpreting the build output?

@spmallette
Copy link
Contributor Author

Once I realized that the failure was not preventing the build it was easy to spot the problem. Just pushed a fix.

@jorgebay
Copy link
Contributor

Nice! lgtm

VOTE +1

@asfgit asfgit merged commit 2819dba into tp32 Nov 22, 2017
@asfgit asfgit deleted the TINKERPOP-1784 branch January 2, 2018 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants