test_graph   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 44
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 5

3 Functions

Rating   Name   Duplication   Size   Complexity  
A test_side_effects() 0 23 2
A test_submit_traversal() 0 12 1
A test_generate_traversal() 0 8 2
1
import pytest
2
from aiogremlin import process
3
from gremlin_python.process.traversal import Binding, T
4
5
from goblin import driver
6
7
8
@pytest.mark.asyncio
9
async def test_generate_traversal(remote_graph, remote_connection):
10
    async with remote_connection:
11
        g = remote_graph.traversal().withRemote(remote_connection)
12
        traversal = g.V().hasLabel(('v1', 'person'))
13
        assert isinstance(traversal,
14
                          process.graph_traversal.AsyncGraphTraversal)
15
        assert traversal.bytecode.step_instructions[1][1][1] == 'person'
16
17
18
@pytest.mark.asyncio
19
async def test_submit_traversal(remote_graph, remote_connection):
20
    g = remote_graph.traversal().withRemote(remote_connection)
21
    resp = g.addV('person').property('name', 'leifur').valueMap(True)
22
    leif = await resp.next()
23
    assert leif['name'][0] == 'leifur'
24
    assert leif[T.label] == 'person'
25
    resp = g.V(Binding('vid', leif[T.id])).drop()
26
    none = await resp.next()
27
    assert none is None
28
29
    await remote_connection.close()
30
31
32
#@pytest.mark.skipif(pytest.config.getoption('provider') == 'dse', reason="need custom alias")
33
@pytest.mark.asyncio
34
async def test_side_effects(remote_graph, remote_connection):
35
    async with remote_connection:
36
        remote_connection._message_serializer = \
37
            driver.GraphSONMessageSerializer
38
        g = remote_graph.traversal().withRemote(remote_connection)
39
        # create some nodes
40
        resp = g.addV('person').property('name', 'leifur')
41
        leif = await resp.next()
42
        resp = g.addV('person').property('name', 'dave')
43
        dave = await resp.next()
44
45
        resp = g.addV('person').property('name', 'jon')
46
        jonthan = await resp.next()
47
48
        traversal = g.V().aggregate('a').aggregate('b')
49
        await traversal.iterate()
50
        keys = await traversal.side_effects.keys()
51
        assert keys == set(['a', 'b'])
52
        side_effects = await traversal.side_effects.get('a')
53
        assert side_effects
54
        side_effects = await traversal.side_effects.get('b')
55
        assert side_effects
56