This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 2d81a9a141d02e3d9317c1f0d3247484aa4a3cbc Merge: 81da13df55 1f998c3171 Author: Stephen Mallette <[email protected]> AuthorDate: Tue Dec 2 09:42:11 2025 -0500 Merge branch '3.8-dev' CHANGELOG.asciidoc | 1 + .../process/traversal/step/map/AddEdgeStep.java | 4 ++-- gremlin-go/driver/cucumber/gremlin.go | 1 + .../gremlin-javascript/test/cucumber/gremlin.js | 1 + gremlin-python/docker-compose.yml | 1 + gremlin-python/src/main/python/examples/connections.py | 4 ++-- .../src/main/python/examples/modern_traversals.py | 4 ++-- gremlin-python/src/main/python/radish/gremlin.py | 1 + .../gremlin/test/features/map/AddEdge.feature | 18 ++++++++++++++++-- 9 files changed, 27 insertions(+), 8 deletions(-) diff --cc gremlin-python/docker-compose.yml index a1baa4809b,380799b35d..ec618935c2 --- a/gremlin-python/docker-compose.yml +++ b/gremlin-python/docker-compose.yml @@@ -47,24 -50,30 +47,25 @@@ services volumes: - ${BUILD_DIR:-./src/main/python}:/python_app - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features:/python_app/gremlin-test/features + - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary:/python_app/gremlin-test/graphbinary + - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson:/python_app/gremlin-test/graphson - ../docker/gremlin-test-server:/python_app/gremlin-test-server - - ../gremlin-tools/gremlin-socket-server/conf:/python_app/gremlin-socket-server/conf/ - environment: - DEBIAN_FRONTEND=noninteractive - - KRB5_CONFIG=./gremlin-test-server/krb5.conf - - KRB5CCNAME=./test-tkt.cc - - GREMLIN_SERVER_URL=ws://gremlin-server-test-python:{}/gremlin - - GREMLIN_SERVER_BASIC_AUTH_URL=wss://gremlin-server-test-python:{}/gremlin - - GREMLIN_SERVER_URL_HTTP=http://gremlin-server-test-python:{}/ - - GREMLIN_SERVER_BASIC_AUTH_URL_HTTP=https://gremlin-server-test-python:{}/ - - KRB_HOSTNAME=${KRB_HOSTNAME:-gremlin-server-test} - - GREMLIN_SOCKET_SERVER_URL=ws://gremlin-socket-server-python:{}/gremlin - - GREMLIN_SOCKET_SERVER_CONFIG_PATH=/python_app/gremlin-socket-server/conf/test-ws-gremlin.yaml + - GREMLIN_SERVER_URL=http://gremlin-server-test-python:{}/gremlin + - GREMLIN_SERVER_BASIC_AUTH_URL=https://gremlin-server-test-python:{}/gremlin + - IO_TEST_DIRECTORY=/python_app/gremlin-test/graphbinary/ + - IO_TEST_DIRECTORY_GRAPHSON=/python_app/gremlin-test/graphson/ working_dir: /python_app command: > - bash -c "apt-get update && apt-get -y install libkrb5-dev krb5-user - && echo 'password' | kinit stephen - && klist - && pip install .[test,kerberos] + bash -c "pip install .[test,kerberos] && pytest - && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v3.0+json' - && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v1.0' + && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='bulked=true' + && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='parameterize=true' + && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' + && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v4.0+json' --user-data='parameterize=true' + && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v4.0+json' + && pip install . && echo 'Running examples...' && python3 examples/basic_gremlin.py && python3 examples/connections.py diff --cc gremlin-python/src/main/python/examples/connections.py index f396a8d797,d4e36d4943..3183bfda6d --- a/gremlin-python/src/main/python/examples/connections.py +++ b/gremlin-python/src/main/python/examples/connections.py @@@ -58,19 -61,36 +58,19 @@@ def with_remote() # connecting with plain text authentication def with_auth(): - # if there is a port placeholder in the env var then we are running with docker so set appropriate port - server_url = os.getenv('GREMLIN_SERVER_BASIC_AUTH_URL', 'ws://localhost:8182/gremlin').format(45941) - + # if there is a port placeholder in the env var then we are running with docker so set appropriate port + server_url = os.getenv('GREMLIN_SERVER_BASIC_AUTH_URL', 'http://localhost:8182/gremlin').format(45941) - ++ # disable SSL certificate verification for CI environments if ':45941' in server_url: ssl_opts = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) ssl_opts.check_hostname = False ssl_opts.verify_mode = ssl.CERT_NONE - rc = DriverRemoteConnection(server_url, 'g', username='stephen', password='password', - transport_factory=lambda: AiohttpTransport(ssl_options=ssl_opts)) + rc = DriverRemoteConnection(server_url, 'g', auth=basic('stephen', 'password'), + transport_factory=lambda: AiohttpHTTPTransport(ssl_options=ssl_opts)) else: - rc = DriverRemoteConnection(server_url, 'g', username='stephen', password='password') - - g = traversal().with_remote(rc) - - v = g.add_v(VERTEX_LABEL).iterate() - count = g.V().has_label(VERTEX_LABEL).count().next() - print("Vertex count: " + str(count)) - - rc.close() + rc = DriverRemoteConnection(server_url, 'g', auth=basic('stephen', 'password')) - + - -# connecting with Kerberos SASL authentication -def with_kerberos(): - # if there is a port placeholder in the env var then we are running with docker so set appropriate port - server_url = os.getenv('GREMLIN_SERVER_URL', 'ws://localhost:8182/gremlin').format(45942) - kerberos_hostname = os.getenv('KRB_HOSTNAME', socket.gethostname()) - kerberized_service = f'test-service@{kerberos_hostname}' - - rc = DriverRemoteConnection(server_url, 'g', kerberized_service=kerberized_service) g = traversal().with_remote(rc) v = g.add_v(VERTEX_LABEL).iterate() diff --cc gremlin-python/src/main/python/examples/modern_traversals.py index 9feb66d775,bbab62d110..3397ed2a67 --- a/gremlin-python/src/main/python/examples/modern_traversals.py +++ b/gremlin-python/src/main/python/examples/modern_traversals.py @@@ -32,15 -32,15 +32,15 @@@ def main() # This example requires the Modern toy graph to be preloaded upon launching the Gremlin server. # For details, see https://tinkerpop.apache.org/docs/current/reference/#gremlin-server-docker-image and use # conf/gremlin-server-modern.yaml. - # if there is a port placeholder in the env var then we are running with docker so set appropriate port - server_url = os.getenv('GREMLIN_SERVER_URL', 'ws://localhost:8182/gremlin').format(45940) - + # if there is a port placeholder in the env var then we are running with docker so set appropriate port + server_url = os.getenv('GREMLIN_SERVER_URL', 'http://localhost:8182/gremlin').format(45940) - ++ # CI uses port 45940 with gmodern binding, local uses 8182 with g binding if ':45940' in server_url: graph_binding = 'gmodern' # CI environment else: graph_binding = 'g' # Local environment -- ++ rc = DriverRemoteConnection(server_url, graph_binding) g = traversal().with_remote(rc)
