Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Goblin OGM
AIO Gremlin
Commits
0bd35d3c
Commit
0bd35d3c
authored
Jan 22, 2018
by
davebshow
Browse files
cleaner message deserialzation
parent
50ed2bdd
Changes
2
Hide whitespace changes
Inline
Side-by-side
aiogremlin/driver/protocol.py
View file @
0bd35d3c
...
...
@@ -42,23 +42,15 @@ class GremlinServerWSProtocol(protocol.AbstractBaseProtocol):
await
func
async
def
data_received
(
self
,
data
,
results_dict
):
serializer_version
=
self
.
_message_serializer
.
version
data
=
data
.
decode
(
'utf-8'
)
message
=
json
.
loads
(
data
)
message
=
self
.
_message_serializer
.
deserialize_message
(
json
.
loads
(
data
)
)
request_id
=
message
[
'requestId'
]
status_code
=
message
[
'status'
][
'code'
]
data
=
message
[
'result'
][
'data'
]
msg
=
message
[
'status'
][
'message'
]
if
request_id
in
results_dict
:
result_set
=
results_dict
[
request_id
]
if
serializer_version
==
b
"application/vnd.gremlin-v2.0+json"
:
aggregate_to
=
data
[
'result'
][
'meta'
].
get
(
'aggregateTo'
,
'list'
)
else
:
meta_aggregate_to
=
message
[
'result'
][
'meta'
][
'@value'
]
if
len
(
meta_aggregate_to
)
>
1
:
aggregate_to
=
meta_aggregate_to
[
1
]
else
:
aggregate_to
=
'list'
aggregate_to
=
message
[
'result'
][
'meta'
].
get
(
'aggregateTo'
,
'list'
)
result_set
.
aggregate_to
=
aggregate_to
if
status_code
==
407
:
...
...
@@ -72,18 +64,11 @@ class GremlinServerWSProtocol(protocol.AbstractBaseProtocol):
result_set
.
queue_result
(
None
)
else
:
if
data
:
if
serializer_version
==
b
"application/vnd.gremlin-v2.0+json"
:
for
result
in
data
:
result
=
self
.
_message_serializer
.
deserialize_message
(
result
)
message
=
Message
(
status_code
,
result
,
msg
)
result_set
.
queue_result
(
message
)
else
:
results
=
self
.
_message_serializer
.
deserialize_message
(
data
[
'@value'
])
for
result
in
results
:
message
=
Message
(
status_code
,
result
,
msg
)
result_set
.
queue_result
(
message
)
for
result
in
data
:
result
=
self
.
_message_serializer
.
deserialize_message
(
result
)
message
=
Message
(
status_code
,
result
,
msg
)
result_set
.
queue_result
(
message
)
else
:
data
=
self
.
_message_serializer
.
deserialize_message
(
data
)
message
=
Message
(
status_code
,
data
,
msg
)
result_set
.
queue_result
(
message
)
if
status_code
!=
206
:
...
...
tests/test_gremlin_python/driver/test_driver_remote_connection.py
View file @
0bd35d3c
...
...
@@ -38,6 +38,7 @@ class TestDriverRemoteConnection(object):
statics
.
load_statics
(
globals
())
g
=
Graph
().
traversal
().
withRemote
(
remote_connection
)
result
=
await
g
.
V
().
limit
(
1
).
toList
()
await
remote_connection
.
close
()
@
pytest
.
mark
.
asyncio
async
def
test_traversals
(
self
,
remote_connection
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment